如何重复每个数组元素等于元素值的次数?

时间:2019-04-22 23:15:26

标签: python numpy

我有一个numpy数组:

import numpy as np

a = np.array([2,5,1])

如何使用numpy或pandas或列表推导等方法获得这样的数组? (不使用for循环)

[2,2,5,5,5,5,5,1]

3 个答案:

答案 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])