NumPy:需要一个函数,其中:f(目标数组,指标数组,某些数字) - >目标数组,其中的标记填入了一些数字

时间:2016-04-02 20:38:16

标签: python arrays numpy

我正试图解决这个问题,试图解决这个问题。

以下是一个例子:

A = [[3, 1, 2], 
     [1, 4, 3], 
     [8, 9, 6]] (the target array)

B = [[0], 
     [1], 
     [1]] (the array of indicies)

aNumber = 1.2222 (some number)

我正在尝试使用此结果进行矢量化方法:

A = [[1.2222, 1, 2],
     [1, 1.2222, 3], 
     [8, 1.2222, 6]]

它接受A,转到B引用的索引并用aNumber替换它。

显然这是不正确的:A [B] = aNumber ......但它代表了我试图完成的向量化方法

是的,我可以通过for循环来实现这一点,但是有一种阵列广播方式吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您必须为两个轴提供索引:

A[np.arange(len(A)), B.flat] = aNumber