2

数字の配列がありますabの対応する要素を取得する回数を指定する2番目の配列があります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] ]
4

3 に答える 3

6

それはまさに何をするかnp.arange(5).repeat([1,0,3,2,0])です。

于 2012-11-09T12:37:35.987 に答える
0

これを行う1つの方法は次のとおりです。

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

res = np.array(res)  # optional
于 2012-11-09T12:38:30.327 に答える
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
于 2012-11-09T12:36:11.963 に答える