我有一个numpy数组:
import numpy as np
a = np.array([2,5,1])
如何使用numpy或pandas或列表推导等方法获得这样的数组? (不使用for循环)
[2,2,5,5,5,5,5,1]
答案 0 :(得分:10)
使用repeat
:
In [11]: a.repeat(a)
Out[11]: array([2, 2, 5, 5, 5, 5, 5, 1])
答案 1 :(得分:2)
import numpy as np
from itertools import chain
...
np.fromiter(chain.from_iterable(([b]*b for b in a)), dtype=int)
答案 2 :(得分:1)
列表理解:
np.concatenate([[b] * b for b in a])
#array([2, 2, 5, 5, 5, 5, 5, 1])