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

在看CS231n的时候,有这么一行代码

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

查了查np.nditer原来是numpy array自带的迭代器。这里简单写个demo解释一下np.nditer的用法。

先构建一个3x4的矩阵

np.nditer、flags=['multi_index'] 用法_第1张图片
image.png

然后输入命令

image.png

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

迭代一下试一试

np.nditer、flags=['multi_index'] 用法_第2张图片
image.png

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

你可能感兴趣的:(np.nditer、flags=['multi_index'] 用法)