Python 在修改numpy数组中使用省略号

Python 在修改numpy数组中使用省略号,python,arrays,numpy,Python,Arrays,Numpy,我看到了下面的代码,它尝试迭代numpy数组arr并修改其元素。然而,我不太明白这里使用省略号(…)的目的是什么。如果删除省略号(即使用x=x*2),则不会修改arr的元素。希望从你那里得到一些提示!谢谢 for x in np.nditer(arr,op_flags='readwrite'): x[...] = x*2; 省略号…是一个内置的Python符号,用于指定N维Numpy数组中的切片,例如a[0,…,0]相当于a[0,:,:,,:,0]用于5维数组a nditer对象使用此

我看到了下面的代码,它尝试迭代numpy数组arr并修改其元素。然而,我不太明白这里使用省略号(…)的目的是什么。如果删除省略号(即使用x=x*2),则不会修改arr的元素。希望从你那里得到一些提示!谢谢

for x in np.nditer(arr,op_flags='readwrite'):
    x[...] = x*2;

省略号
是一个内置的Python符号,用于指定N维Numpy数组中的切片,例如
a[0,…,0]
相当于
a[0,:,:,,:,0]
用于5维数组
a

nditer
对象使用此语法使迭代器可写

使用迭代器对象作为左值修改对象本身,而不是它所引用的数组中的位置。因此,
x[…]
是用于取消引用迭代器的语法

您也可以使用此语法访问值以进行读取,但这是多余的

还要注意,op_标志的语法不正确。它应该是一个列表或元组

for x in np.nditer(arr,op_flags=['readwrite']):
    x[...] = x*2;

nditer
文档
x
中的签出部分是一个数组,是
arr
的视图,必须进行适当修改才能影响
arr
中的值。