使用另一个数组和索引数组创建numpy数组

时间:2017-11-09 23:42:24

标签: python arrays numpy vectorization

我有一个形状为y的数组(m, n)和一个形状为indices的数组(m, n, k)。假设我想要执行以下操作(在Python中):

x = np.ndarray(shape=(m,n,k))
for i in range(m):
    for j in range(n):
        for l in range(k):
            x[i,j,l] = y[indices[i,j,l],j]

有没有办法只使用不需要使用for循环的NumPy来做到这一点?

1 个答案:

答案 0 :(得分:0)

使用NumPy的advanced-indexing进行矢量化作业 -

x = y[indices, np.arange(n)[:,None]]