У меня есть numpy_array. Нечто подобное [ a b c ]
.
И затем я хочу добавить его в другой массив NumPy (точно так же, как мы создаем список списков). Как нам создать массив массивов NumPy, содержащих массивы NumPy?
Я попытался сделать следующее без удачи
>>> M = np.array([])
>>> M
array([], dtype=float64)
>>> M.append(a,axis=0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'append'
>>> a
array([1, 2, 3])
Ответы:
или это:
источник
vstack()
идею Свена . Вы знаете, что можете создать массивarray([[1,2,3],[2,3,4]])
, верно?numpy.vstack
может принимать более 2-х массивов в аргументе последовательности. Таким образом, если вам нужно объединить более двух массивов, vstack более удобен.concatenate
также может принимать несколько массивовНу, сообщение об ошибке говорит само за себя: у массивов NumPy нет
append()
метода. Однако есть бесплатная функцияnumpy.append()
:Это создаст новый массив вместо того, чтобы мутировать
M
на месте. Обратите внимание, что использованиеnumpy.append()
включает в себя копирование обоих массивов. Вы получите более эффективный код, если будете использовать массивы NumPy фиксированного размера.источник
numpy.vstack()
.Вы можете использовать
numpy.append()
...Это не создаст два отдельных массива, но добавит два массива в одномерный массив.
источник
Свен все это сказал, просто будьте очень осторожны из-за автоматической настройки типа при вызове append.
Как видно из содержимого, dtype перешел с int64 на float32, а затем на S1.
источник
Я нашел эту ссылку, когда искал что-то немного другое, как начать добавлять объекты массива в пустой массиву, но попробовал все решения на этой странице безрезультатно.
Тогда я нашел этот вопрос и ответ: Как добавить новую строку в пустой массив NumPy
Суть здесь:
Затем вы можете использовать concatenate для добавления строк следующим образом:
arr = np.concatenate( ( arr, [[x, y, z]] ) , axis=0)
Смотрите также https://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html.
источник
На самом деле всегда можно создать обычный список массивов-пустышек и преобразовать его позже.
источник
У меня была та же проблема, и я не мог прокомментировать ответ @Sven Marnach (недостаточно реп, черт возьми, я помню, когда Stackoverflow впервые начал ...) в любом случае.
Добавление списка случайных чисел в матрицу 10 X 10.
Используя np.zeros (), массив создается с 1 x 10 нулями.
Затем создается список из 10 случайных чисел с использованием np.random и присваивается randomList. Цикл складывает это 10 высоко. Мы просто должны помнить, чтобы удалить первую пустую запись.
Итак, в функции:
массив 7 x 7 с использованием случайных чисел 0 - 1000
источник
Если я понимаю ваш вопрос, вот один из способов. Скажем, у вас есть:
так вот немного кода ...
Что приводит к:
источник
Попробуйте этот код:
Также вы можете использовать массив вместо «а»
источник