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

Posted ratels

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代器对象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  
  
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]]

 

以上是关于迭代器对象numpy.nditer在数组上进行迭代——修改数组的值的主要内容,如果未能解决你的问题,请参考以下文章

Numpy 迭代数组

NumPy迭代数组

Numpy | 11 迭代数组

在with语句中使用numpy nditer时出现AttributeError:__ enter__

迭代器模式

46. 迭代器