sumar recorrer que multiplicacion matriz matrices elementos crear con arreglos array numpy multidimensional-array

que - recorrer matriz numpy



Looping a través de cada elemento en una matriz numpy? (3)

Haz una pequeña matriz 2D y una lista anidada de ella:

In [241]: A=np.arange(6).reshape(2,3) In [242]: alist= A.tolist() In [243]: alist Out[243]: [[0, 1, 2], [3, 4, 5]]

Una forma de iterar en la lista:

In [244]: for row in alist: ...: for item in row: ...: print(item) ...: 0 1 2 3 4 5

funciona igual para la matriz

In [245]: for row in A: ...: for item in row: ...: print(item) ...: 0 1 2 3 4 5

Ahora ninguno de los dos es bueno si quieres modificar elementos. Pero para la iteración cruda sobre todos los elementos esto funciona.

Con la matriz que puedo tratar fácilmente era un 1d

In [246]: [i for i in A.flat] Out[246]: [0, 1, 2, 3, 4, 5]

También podría iterar con índices anidados

In [247]: [A[i,j] for i in range(A.shape[0]) for j in range(A.shape[1])] Out[247]: [0, 1, 2, 3, 4, 5]

En general, es mejor trabajar con matrices sin iteración. Doy estos ejemplos de iteración para aclarar algo de confusión.

Estoy tratando de acceder a cada elemento en una matriz numpy 2D.

Estoy acostumbrado a algo como esto en Python [[,], [...], [...]]

for row in data: for col in data: print(data[row][col])

pero ahora, tengo un data_array = np.array(features)

¿Cómo puedo iterar a través de él de la misma manera?


Si desea acceder a un elemento en las características numeradas de la matriz 2D, puede usar las características [row_index, column_index]. Si quisiera iterar a través de una matriz numpy, podría simplemente modificar su script para

for row in data: for col in data: print(data[row, col])


Pruebe np.ndenumerate :

>>> a =numpy.array([[1,2],[3,4]]) >>> for (i,j), value in np.ndenumerate(a): ... print(i, j, value) ... 0 0 1 0 1 2 1 0 3 1 1 4