使用NumPy中的频率数组检索数组元素

时间:2012-11-09 12:31:00

标签: python numpy

我有一组数字,a。我有第二个数组b,指定我想要检索a中相应元素的次数。怎么能实现这一目标?在这种情况下,输出的顺序并不重要。

import numpy as np

a = np.arange(5)
b = np.array([1,0,3,2,0])

# desired output = [0,2,2,2,3,3]
# i.e. [a[0], a[2], a[2], a[2], a[3], a[3] ]

3 个答案:

答案 0 :(得分:6)

这正是np.arange(5).repeat([1,0,3,2,0])的作用。

答案 1 :(得分:0)

这样做的效率非常低:

import numpy as np

a = np.arange(5)
b = np.array([1,0,3,2,0])

res = []
i = 0
for val in b:
    for aa in range(val):
        res.append(a[i])
    i += 1
print res

答案 2 :(得分:0)

这是一种方法:

res = []
for i in xrange(len(b)):
    for j in xrange(b[i]):
        out.append(a[i])

res = np.array(res)  # optional