import numpy as np
#NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式。
a=np.arange(6).reshape(2,3)
print(a)
for x in np.nditer(a):
print(x,end=",")
print("\n")
#修改数组中元素的值
#nditer对象有另一个可选参数 op_flags。默认情况下,nditer将视待迭代遍历的数组为只读对象(read-only),
# 为了在遍历数组的同时,实现对数组元素值得修改,必须指定 read-write 或者 write-only 的模式。
for x in np.nditer(a, op_flags=['readwrite']):
x[...]=2*x
print(a)
#[[0 1 2]
# [3 4 5]]
#0,1,2,3,4,5,
#
#[[ 0 2 4]
# [ 6 8 10]]
#使用外部循环
#external_loop 给出的值是具有多个值的一维数组,而不是零维数组
for x in np.nditer(a, flags = ['external_loop'], order = 'F'):
print (x, end=", " )
print("\n")
#[0 6], [2 8], [ 4 10],
#广播迭代
a=np.arange(0,60,5).reshape(3,4)
print(a)
b=np.arange(4,dtype=int)
print(b)
for x,y in np.nditer([a,b]):
print ("%d:%d" % (x,y), end=", " )
#[[ 0 5 10 15]
# [20 25 30 35]
# [40 45 50 55]]
#[0 1 2 3]
#0:0, 5:1, 10:2, 15:3, 20:0, 25:1, 30:2, 35:3, 40:0, 45:1, 50:2, 55:3,
参考:https://www.runoob.com/numpy/numpy-terating-over-array.html
以上,记录本人学习过程。