使用行索引将值分配给numpy数组

问题描述 投票:0回答:1

假设我有两个数组,a=np.array([0,0,1,1,1,2]), b=np.array([1,2,4,2,6,5])a中的元素表示应在其中分配b的行索引。如果同一行中有多个元素,则应按顺序分配值。因此,结果是一个2D数组c

c = np.zeros((3, 4))
counts = {k:0 for k in range(3)}
for i in range(a.shape[0]):
    c[a[i], counts[a[i]]]=b[i]
    counts[a[i]]+=1
print(c)

如果这些数组很大,是否有一种方法可以在numpy中使用某些奇特的索引方法来更快地获得此类结果(无需for循环)。>

假设我有两个数组,a = np.array([0,0,1,1,1,2]),b = np.array([1,2,4,2,6,5])。 a中的元素表示应在其中分配b的行索引。如果同一行中有多个元素,则...

python numpy numpy-ndarray numpy-broadcasting numpy-slicing
1个回答
0
投票

我必须运行您的代码才能实际看到它产生了什么。我脑海中“奔跑”的能力受到限制。

© www.soinside.com 2019 - 2024. All rights reserved.