Saltar al contenido

Iteración de matrices numéricas

NumPy proporciona un objeto iterador multidimensional llamado nditer para iterar los elementos de una matriz. Por ejemplo, puedes usar nditer en el ejemplo anterior como:

<pre>12para la célula en np.nditer(A):print(cell, end=' ')</pre>
pitón

Iteración de matrices numéricas
Iteración de matrices numéricas

Salida:

<pre>101234567891011</pre>
pitón

Orden de Iteración de Nditer

Puede controlar cómo se accede a los elementos con nditer usando el parámetro de orden. Si especificas el orden como C, entonces se sigue el orden C, que es el que atraviesa los elementos de la matriz horizontalmente. Si especificas el orden como F, se sigue el orden Fortran, que es el que atraviesa los elementos de la matriz verticalmente.

Por ejemplo, para obtener la orden $0027C$0027:

<pre>12para la célula en np.nditer(A, order='C'):print(cell, end=' ')</pre>
pitón

Salida:

<pre>101234567891011</pre>
pitón

Para conseguir la orden de Fortran:

<pre>12para la célula en np.nditer(A, order='F'):print(cell, end=' ')</pre>
pitón

Salida:

<pre>103691471025811</pre>
pitón

Por defecto, nditer sigue el orden «k», lo que significa que sigue un orden que coincide con la disposición de la memoria de la matriz. Este ajuste predeterminado le permite acceder a los elementos en el menor tiempo posible. Para probarlo, definamos una matriz $0027B$0027 como la transposición de la matriz bidimensional $0027A$0027. Así que lo hemos hecho:

<pre>1A</pre>
pitón

Salida:

<pre>1234array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])</pre>
pitón

Y la matriz de transposición $0027B$0027:

<pre>12B = A.TB</pre>
pitón

Salida:

<pre</pre>123array([[0,3,6,9],[1,4,7,10],[2,5,8,11]])</pre>
pitón

Así que, si iteramos con el orden por defecto «k», deberíamos ver la misma salida para ambas matrices «A» y «B».

<pre>12para la célula en np.nditer(A):print(cell, end=' ')</pre>
pitón

Salida:

<pre>101234567891011</pre>
python<pre>12para x en np.nditer(B):print(x, end=' ')</pre>
pitón

Salida:

<pre>101234567891011</pre>
pitón