## Iterate over a numpy Matrix rows

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.