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