我正在把头撞在墙上,试图解决这个问题。

这是一个例子:

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循环来实现这一点,但是有没有一种数组广播的方式可以做到这一点?

谢谢您的帮助!

最佳答案

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

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

10-07 16:27