В Python я хочу создать матрицу n-by-100
, где значение n
неизвестно в начале. Это создание включает последовательное добавление строки в матрицу. Код, который я пытался за это:Добавление строк в массив NumPy
x = numpy.zeros(100)
while true:
y = loadrow(); # Load a 1-by-100 NumPy array for the new row
x = numpy.append(x, y, 0)
Однако есть три проблемы с вышеизложенным, которые я имею затруднение решая:
линия
x = numpy.zeros(100)
инициализирует матрицу с рядом 100 нулей. Тем не менее, я хочу, чтобы первая строка была первой, которую я загружаю. Как создать пустую матрицу, которая будет предоставляться только после того, как я добавлю первую строку?Строка
x = numpy.append(x, y, 0)
не добавляет еще одну строку к матрицеx
. Вместо этого он просто добавляетy
в конец первой строки, чтобы создать еще более длинную строку. Но если я попробуюx = numpy.append(x, y, 1)
, так что я присоединяюсь к оси 1, то получаю ошибку:TypeError: Required argument 'object' (pos 1) not found
.Когда я последовательно добавляю строки, подобные этому, кажется, что я продолжаю делать копии исходного массива, который будет неэффективным по мере роста массива. Есть ли другой способ сделать это, когда я не знаю, какой будет размер финального массива?
Спасибо!
смотрите мой ответ на подобный вопрос [здесь] (http://stackoverflow.com/questions/35818395/add-a-column- в-Numpy-массива-Python/35828879 # 35828879). – bunji
Рассмотрите возможность использования списка и после цикла, преобразуйте его в массив numpy. – Evert