Rad*_*led 0 python arrays indexing numpy frequency
在使用numpy的python中,转换数组的最快方法是什么
array([0,2,3,1,0,0,1])
Run Code Online (Sandbox Code Playgroud)
到另一个数组
array([1,1,2,2,2,3,6])
Run Code Online (Sandbox Code Playgroud)
其中第一个数组给出每个索引的频率(即索引0的频率为0,索引1的频率为2,索引2的频率为3,依此类推),第二个数组重复每个索引的次数为在第一个数组中指定.
背景:我使用它来'enflate'(我找不到任何更好的词)a a kby kMatrix M(稀疏或不稀疏)给定长度k频率向量f:
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_]
Run Code Online (Sandbox Code Playgroud)
np.repeat在覆盖输入数组长度的范围数组上使用数组本身进行重复计数 -
np.repeat(np.arange(len(a)), a)
Run Code Online (Sandbox Code Playgroud)
样品运行 -
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])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |