如何在不将数据更改为 numpy 视图的情况下将数据存储到 numpy 视图view
中copy
?此代码片段举例说明了我的问题:
>>> import numpy as np
>>> #-- init arrays and view
>>> a = np.ones([4])
>>> z = np.zeros([2,4])
>>> z0 = z[0,:] #-- view
>>> z0.flags.owndata
False
>>> #-- This works!
>>> #-- modify view in-place
>>> np.add(a,z0,z0)
>>> z0.flags.owndata
False
>>> z
array([[ 1., 1., 1., 1.],
[ 0., 0., 0., 0.]])
>>> #-- reinit arrays and view
>>> z = np.zeros([2,4])
>>> z0 = z[0,:] #-- view
>>> #-- This does NOT work!
>>> #-- store data into view
>>> z0 = a
>>> z0.flags.owndata
True
+=
-=
*=
/=
我知道使用带有参数的 numpy 函数进行就地修改out
,因此您可以执行诸如获取就地np.abs(x, x)
绝对值之类的操作。x
但是如何只将数据存储到一个view
而不做修改呢?
滥用该add
功能(添加零和存储)有效,但感觉不“正确”:
np.add(a,0,z0)