Python 集合numpy向量

Python 集合numpy向量,python,arrays,numpy,indexing,Python,Arrays,Numpy,Indexing,如何使用索引数组C给出的索引将numpy数组a添加到numpy数组B的元素中 理想情况下,我可以写: A=np.zeros(4,float) B=np.array([1,2,3,4]) C=np.array([1,2,1,3]) A[C] +=B print A 输出: [0,4,2,4] 但它不起作用,因为(根据文档)A[C]是一个副本。 (我只是想知道,如果C中的索引只出现一次,为什么它实际上会起作用。) 我需要快速完成(对于大型阵列)。看起来您的示例应该是这样的 A = np.zeros

如何使用索引数组C给出的索引将numpy数组a添加到numpy数组B的元素中

理想情况下,我可以写:

A=np.zeros(4,float)
B=np.array([1,2,3,4])
C=np.array([1,2,1,3])
A[C] +=B
print A
输出: [0,4,2,4]

但它不起作用,因为(根据文档)A[C]是一个副本。 (我只是想知道,如果C中的索引只出现一次,为什么它实际上会起作用。)


我需要快速完成(对于大型阵列)。

看起来您的示例应该是这样的

A = np.zeros(4, dtype=float)
B=np.array([1,2,3,4])
C=np.array([1,2,1,3])
A[C] += B
print A
如果是这样,那么您需要的不是
+=
<代码>添加。at执行
+=
所做的操作,但使用重复的索引以您想要的方式处理。类似的构造适用于其他运算符,例如
-=
减法.at

numpy.add.at(A, C, B)

在计算中不使用
B
。另外,
np。
ui的语法无效。请让您的示例代码在Python中运行。