pythonnumpy遍历_循环遍历numpy数组中的每个项目?

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 data:

print(data[row][col])

but now, I have a data_array = np.array(features)

How can I iterate through it the same way?

解决方案

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值