Looping through each item in a numpy array?

前端 未结 3 721
梦如初夏
梦如初夏 2021-01-27 09:08

I\'m trying to access each item in a numpy 2D array.

I\'m used to something like this in Python [[...], [...], [...]]

for row in data:
    for col in dat         


        
相关标签:
3条回答
  • 2021-01-27 09:28

    Try 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
    
    0 讨论(0)
  • 2021-01-27 09:31

    If you want to access an item in a numpy 2D array features, you can use features[row_index, column_index]. If you wanted to iterate through a numpy array, you could just modify your script to

    for row in data:
    
        for col in data:
    
           print(data[row, col])
    
    0 讨论(0)
  • 2021-01-27 09:34

    Make a small 2d array, and a nested list from it:

    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]]
    

    One way of iterating on the list:

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

    works just same for the array

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

    Now neither is good if you want to modify elements. But for crude iteration over all elements this works.

    WIth the array I can easily treat it was a 1d

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

    I could also iterate with nested indices

    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]
    

    In general it is better to work with arrays without iteration. I give these iteration examples to clearup some confusion.

    0 讨论(0)
提交回复
热议问题