Iterate over a numpy Matrix rows

numpy iterate over rows with index
numpy iterate over 3d array
numpy nditer
numpy iterate over columns
numpy array
numpy iterate over 2d array with index
iterate over two numpy arrays
modify numpy array in loop

First, I tried to find an answer to my question ( which I think is pretty basic) searching in google and in the site, but nothing came up.

I'm trying to get the rows from a numpy matrix, but I can't. For example if I use this:

result = numpy.matrix([[11, 12, 13],
                       [21, 22, 23],
                       [31, 32, 33]])

for p in result:
    print(p[0])

prints this:

[[11 12 13]]
[[21 22 23]]
[[31 32 33]]

The same if I use just p

What I have to do to access every row? numpy.nditer(result) prints an array, and I need every row to perform some operations.


The problem is you are using np.matrix. Use np.array instead and simply iterate without indexing:

result = np.array([[11, 12, 13],
                   [21, 22, 23],
                   [31, 32, 33]])

for p in result:
    print(p)

[11 12 13]
[21 22 23]
[31 32 33]

Explanation

What you are seeing is the effect of numpy.matrix requiring each row to have 2 dimensions. This is unnecessary and anti-pattern for NumPy.

There is a history behind numpy.matrix. It was used initial for convenience of matrix multiplication operators. But this is no longer an issue since @ is possible (Python 3.5+) instead of nested dot calls. Therefore, by default, use numpy.array.

Iterating over Numpy matrix rows to apply a function each?, The most basic task that can be done with the nditer is to visit every element of an array. Each element is provided one by one using the standard Python iterator  NumPy package contains an iterator object numpy.nditer. It is an efficient multidimensional iterator object using which it is possible to iterate over an array. Each element of an array is visited using Python’s standard Iterator interface. Let us create a 3X4 array using arange() function and iterate over it using nditer. Example 1


There are two ways (both essentially boils down to same logic)

method-1:

Use result.A

Return self as an ndarray object. Equivalent to np.asarray(self).

In [16]: for row in result.A:
    ...:     print(row)
    ...:     
[11 12 13]
[21 22 23]
[31 32 33]

method-2:

Use result.getA()

Return self as an ndarray object. Equivalent to np.asarray(self).

In [17]: for row in result.getA():
    ...:     print(row)
    ...:     
[11 12 13]
[21 22 23]
[31 32 33]

Iterating Over Arrays, Python program for # iterating over array import numpy as geek # creating an array using arrange # method a = geek.arange(12) # shape array with 3 rows and  NumPy is set up to iterate through rows when a loop is declared.


Try the following:

for p in result:
    print(numpy.array(p)[0])

This gives you each row as a numpy.ndarray.

Numpy, Each element of an array is visited using Python's standard Iterator interface. Let us create a 3X4 array using arange() function and iterate over it using nditer. If you use the same syntax to iterate a two-dimensional array, you will only be able to iterate a row. 1 2 3 A = np . arange ( 12 ) . reshape ( 4 , 3 ) for row in A : print ( row ) python


NumPy - Iterating Over Array, NumPy is set up to iterate through rows when a loop is declared. import numpy as np # Create an array of random numbers (3 rows, 5 columns)  How to initialize NumPy structured array with different default value for each column? Tag: python , arrays , python-2.7 , numpy , matrix I'm trying to initialize a NumPy structured matrix of size (x,y) where the value of x is ~ 10^3 and y's value is ~ 10^6 .


34. Iterating through columns and rows in NumPy and Pandas , In a 2-D array it will go through all the rows. Example. Iterate on the elements of the following 2-D array: import numpy as np Iterating Arrays. Iterating means going through elements one by one. As we deal with multi-dimensional arrays in numpy, we can do this using basic for loop of python. If we iterate on a 1-D array it will go through each element one by one.


NumPy Array Iterating, A quick note to start: In numpy, the row index comes before the column index, so, for example, a 3x2 array would have the form [[1,2],[3,4],[5,6]]. In any case, for an​  Numpy | Iterating Over Array. NumPy package contains an iterator object numpy.nditer. It is an efficient multidimensional iterator object using which it is possible to iterate over an array. Each element of an array is visited using Python’s standard Iterator interface.