Numpy:频率阵列到分发

时间:2018-04-16 10:21:38

标签: python arrays numpy indexing frequency

在使用numpy的python中,转换数组的最快方法是

array([0,2,3,1,0,0,1])

进入另一个数组

array([1,1,2,2,2,3,6])

其中第一个数组给出每个索引的频率(即索引0的频率为0,索引1的频率为2,索引2的频率为3,依此类推),第二个数组重复每个索引为多次在第一个数组中指定。

背景:我用它来“哄骗”' (我无法找到更好的词)a k k矩阵M(稀疏与否)给定k频率长度{{1} }}:

f

1 个答案:

答案 0 :(得分:5)

在覆盖输入数组长度的范围数组上使用np.repeat,数组本身用于重复计数 -

np.repeat(np.arange(len(a)), a)

示例运行 -

In [109]: a
Out[109]: array([0, 2, 3, 1, 0, 0, 1])

In [110]: np.repeat(np.arange(len(a)), a)
Out[110]: array([1, 1, 2, 2, 2, 3, 6])