Looping through each item in a numpy array?

前端 未结 3 771
梦如初夏
梦如初夏 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: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.

提交回复
热议问题