迭代器对象numpy.nditer在数组上进行迭代——修改数组的值

nditer对象有另一个可选参数op_flags,默认情况下,nditer将视待迭代遍历的数组为只读对象(read-only),为了在遍历数组的同时,实现对数组元素值得修改,必须指定op_flags=['readwrite']模式:

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

修改数组值的示例:

import numpy as np
a = np.arange(0,60,5) 
a = a.reshape(3,4)  
print  '原始数组是:'  
print a 
print  '\n'  
for x in np.nditer(a, op_flags=['readwrite']): 
    x[...]=2*x 
print  '修改后的数组是:'  
print a

输出如下:

原始数组是:
[[ 0 5 10 15]
 [20 25 30 35]
 [40 45 50 55]]

修改后的数组是:
[[ 0 10 20 30]
 [ 40 50 60 70]
 [ 80 90 100 110]]

猜你喜欢

转载自www.cnblogs.com/ratels/p/12287251.html