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