Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Iterating over numpy array and access the values

I want to iterate over a numpy array and do some calculations on the values. However, things are not as expected. To show what I mean, I simply wrote this code to read values from a numpy array and move them to another list.

a = array([1,2,1]).reshape(-1, 1)
u = []
for i in np.nditer(a):
    print(i)
    u.append(i)
print(u)

According to tutorial, nditer points to elements and as print(i) shows, i is the value. However, when I append that i to an array, the array doesn’t store the value. The expected output is u = [1, 2, 1] but the output of the code is

1
2
1
[array(1), array(2), array(1)]

What does array(1) mean exactly and how can I fix that?

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

P.S: I know that with .tolist() I can convert a numpy array to a standard array. However, in that code, I want to iterate over numpy elements.

>Solution :

As already explained in your previous question, numpy.nditer yields numpy arrays. What is shown by print is only the representation of the object, not the content or type of the object (e.g., 1 and '1' have the same representation, not the same type).

import numpy as np
a = np.array([1,2,1]).reshape(-1, 1)

type(next(np.nditer(a)))
# numpy.ndarray

You just have a zero-dimensional array:

np.array(1).shape
# ()

There is no need to use numpy.nditer here. If you really want to iterate over the rows of your array with single column (and not use tolist), use:

u = []
for i in a[:,0]:
    u.append(i)
u
# [1, 2, 1]
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading