[英]Update numpy 2d array indexing from another array
在不使用循环的情况下,是否有一种 numpy 方法可以执行以下操作?
A = np.array([[1,1],[2,2],[3,3],[4,4],[5,5]])
I = np.array([0, 1, 0, 1, 1])
V = np.array([6, 6, 6, 6, 6])
我想更新 A 使其在 I 指定的相应索引中具有 6。所以 A 变为 ...
A = np.array([[6,1],[2,6],[6,3],[4,6],[5,6]])
尝试了以下,但他们没有工作..
A[I] = V
A[:,I] = V
尝试: A[np.arange(len(A)), I] = V
:
In [15]: import numpy as np
In [16]: A = np.array([[1,1],[2,2],[3,3],[4,4],[5,5]])
In [17]: I = np.array([0, 1, 0, 1, 1])
In [18]: V = np.array([6, 6, 6, 6, 6])
In [19]: A[np.arange(len(A)), I] = V
In [20]: A
Out[20]:
array([[6, 1],
[2, 6],
[6, 3],
[4, 6],
[5, 6]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.