Tengo un numpy_array. Algo así como [ a b c ]
.
Y luego quiero agregarlo a otra matriz NumPy (al igual que creamos una lista de listas). ¿Cómo creamos una matriz de matrices NumPy que contienen matrices NumPy?
Traté de hacer lo siguiente sin suerte
>>> 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])
Respuestas:
o esto:
fuente
vstack()
idea de Sven . Sabes que puedes crear la matriz conarray([[1,2,3],[2,3,4]])
, ¿verdad?numpy.vstack
puede aceptar más de 2 matrices en el argumento de secuencia. Por lo tanto, si necesita combinar más de 2 matrices, vstack es más útil.concatenate
también puede tomar múltiples matricesBueno, el mensaje de error lo dice todo: las matrices NumPy no tienen un
append()
método. Sinnumpy.append()
embargo, hay una función gratuita :Esto creará una nueva matriz en lugar de mutar
M
en su lugar. Tenga en cuenta que usarnumpy.append()
implica copiar ambas matrices. Obtendrá un código de mejor rendimiento si utiliza matrices NumPy de tamaño fijo.fuente
numpy.vstack()
.Puedes usar
numpy.append()
...Esto no creará dos matrices separadas, sino que agregará dos matrices en una matriz dimensional única.
fuente
Sven lo dijo todo, solo tenga mucho cuidado debido a los ajustes automáticos de tipo cuando se llama anexar.
Como puede ver en función del contenido, el dtype pasó de int64 a float32, y luego a S1
fuente
Encontré este enlace mientras buscaba algo ligeramente diferente, cómo comenzar a agregar objetos de matriz a una matriz vacía vacía, pero probé todas las soluciones en esta página en vano.
Luego encontré esta pregunta y respuesta: Cómo agregar una nueva fila a una matriz vacía vacía
La esencia aquí:
Luego puede usar concatenar para agregar filas de esta manera:
arr = np.concatenate( ( arr, [[x, y, z]] ) , axis=0)
Ver también https://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html
fuente
En realidad, siempre se puede crear una lista ordinaria de matrices numpy y convertirla más tarde.
fuente
Tuve el mismo problema, y no pude comentar sobre la respuesta de @Sven Marnach (no hay suficiente representante, Dios, recuerdo cuando Stackoverflow comenzó por primera vez ...) de todos modos.
Agregar una lista de números aleatorios a una matriz de 10 X 10.
Usando np.zeros () se crea una matriz con 1 x 10 ceros.
Luego se crea una lista de 10 números aleatorios usando np.random y se asigna a randomList. El bucle lo apila 10 de altura. Solo tenemos que recordar eliminar la primera entrada vacía.
Entonces en una función:
una matriz de 7 x 7 usando números aleatorios 0 - 1000
fuente
Si entiendo tu pregunta, aquí hay una manera. Digamos que tienes:
Así que aquí hay un código ...
Lo que lleva a:
fuente
Prueba este código:
También puede usar una matriz en lugar de "a"
fuente