部分覆盖 numpy 数组不起作用
overriding partially an numpy array does not work
我试图部分覆盖 numpy 数组
有谁知道如何以这种舒适的索引方式做到这一点?
谢谢!
设置
a = np.array([[1,2,3], [1,1,1], [1,1,1]])
b = np.array([[888,888], [99, 99]])
您正在对数组的副本进行操作,因此不会持久化修改,请在此处使用numpy.ix_
:
>>> a[np.ix_([1,2], [0,1])] = b
>>> a
array([[ 1, 2, 3],
[888, 888, 1],
[ 99, 99, 1]])
您还可以将这种索引与 :
分隔开始和结束索引一起使用:
>>> a = np.array([[1,2,3], [1,1,1], [1,1,1]])
# 1: and :2 all_indices_after_1 and all_indices_before_2 respectively
>>> a[1:,:2] = np.array([[888,888], [99, 99]])
>>> a
array([[ 1, 2, 3],
[888, 888, 1],
[ 99, 99, 1]])
我试图部分覆盖 numpy 数组
有谁知道如何以这种舒适的索引方式做到这一点?
谢谢!
设置
a = np.array([[1,2,3], [1,1,1], [1,1,1]])
b = np.array([[888,888], [99, 99]])
您正在对数组的副本进行操作,因此不会持久化修改,请在此处使用numpy.ix_
:
>>> a[np.ix_([1,2], [0,1])] = b
>>> a
array([[ 1, 2, 3],
[888, 888, 1],
[ 99, 99, 1]])
您还可以将这种索引与 :
分隔开始和结束索引一起使用:
>>> a = np.array([[1,2,3], [1,1,1], [1,1,1]])
# 1: and :2 all_indices_after_1 and all_indices_before_2 respectively
>>> a[1:,:2] = np.array([[888,888], [99, 99]])
>>> a
array([[ 1, 2, 3],
[888, 888, 1],
[ 99, 99, 1]])