考虑以下应用于两个 numpy 数组的操作和切片:
In [1]: import numpy as np
In [2]: a = np.array([1,2,3,4])
In [3]: b = np.array([5,6,7,8])
In [4]: a[2:] = 0
In [5]: a = a[::2]
In [6]: b[2:] = 0
In [7]: b = b[::2]
In [8]: a
Out[8]: array([1, 0])
In [9]: b
Out[9]: array([5, 0])
我不想重复切片代码,例如,而不是上面的第 [4]-[7] 行,我希望使用类似
In [4]: for data in [a,b] :
...: data[2:] = 0
...: data = data[::2]
我知道它不起作用,因为它的作用data = data[::2]是data指向一个新对象,而不是更改原始对象。所以 和 的值a没有b被切片:
In [5]: a
Out[5]: array([1, 2, 0, 0])
In [6]: b
Out[6]: array([5, 6, 0, 0])
我的问题是:
如何切片变量引用的numpy数组?
在我的实际应用程序中,我在每个数组中执行多个操作,并希望将它们全部放在for.
慕婉清6462132
呼啦一阵风
九州编程
慕工程0101907
相关分类