我有一个numpy数组(例如,a = np.array([ 8., 2.])
),另一个数组存储了我想从前一个数组得到的索引。 (例如,b = np.array([ 0., 1., 1., 0., 0.])
。
我想要做的是从这两个数组创建另一个数组,在这种情况下,它应该是:array([ 8., 2., 2., 8., 8.])
当然,我总是可以使用for循环来实现这个目标:
for i in range(5):
c[i] = a[b[i]]
我想知道是否有更优雅的方法来创建这个数组。像c = a[b[0:5]]
这样的东西(好吧,这显然不起作用)
答案 0 :(得分:2)
只有整数数组可用于索引,并且您已将b
创建为float64
数组。如果明确转换为整数,则可以获得所需内容:
bi = np.array(b, dtype=int)
c = a[bi[0:5]]