[英]Numpy: frequency array to distribution
在带有numpy的python中,最快的方法是将数组变成
array([0,2,3,1,0,0,1])
放入另一个数组
array([1,1,2,2,2,3,6])
其中第一个数组给出每个索引的频率(即,索引0的频率为0,索引1的频率为2,索引2的频率为3,依此类推),第二个数组重复每个索引的次数为在第一个数组中指定。
背景:在给定长度为k
频率矢量f
我用它来“填充”(我找不到更好的词)一个k
× k
矩阵M
(稀疏与否):
f = np.array([0,2,3,1,0,0,1])
f_ = np.array([1,1,2,2,2,3,6])
M_ = M[f_[:,None],f_]
在范围数组上使用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])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.