np.nditer、flags=[‘multi_index‘] 用法

it = np.nditer(x, flags=['multi_index'], op_flags=['readwrite'])

np.nditer是numpy array自带的迭代器。用一个demo解释一下np.nditer的用法。

先构建一个2x5的矩阵

import numpy as np
a = np.arange(0,100,10).reshape(2,5)
print(a)

运行结果:
在这里插入图片描述
然后输入命令

it = np.nditer(a,flags=['multi_index'],op_flags=['readwrite'])

flags=['multi_index'] 表示对a进行多重索引,具体解释看下面的代码。
op_flags=['readwrite'] 表示不仅可以对a进行read(读取),还可以write(写入),即相当于在创建这个迭代器的时候,就规定好了有哪些权限。

while not it.finished:
    print(it.multi_index)
    it.iternext()

运行结果:
在这里插入图片描述
print(it.multi_index)表示输出元素的索引,可以看到输出的结果都是index。
it.iternext()表示进入下一次迭代,如果不加这一句的话,输出的结果就一直都是(0, 0)。

整体代码及运行结果:

import numpy as np
a = np.arange(0,100,10).reshape(2,5)
print(a)

it = np.nditer(a,flags=['multi_index'],op_flags=['readwrite'])
while not it.finished:
    print(it.multi_index)
    it.iternext()

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值