Skip to main content
 首页 » 编程设计

Python 将向量转换为逆频率

2025年05月04日12jillzhang

给定这个 numpy 数组:

import numpy as np 
 
vector = np.array([1, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 1])   
 
# len(vector) == 12 
# 2 x ones, 4 x two, 6 x three 

如何将其转换为反频率向量?

对于每个值,输出包含 1 除以该值的频率:

array([0.16, 0.33, 0.33, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.33, 0.33, 0.16]) 

请您参考如下方法:

[更新为通用的]

这个使用 np.histogram 怎么样:

import numpy as np 
 
l = np.array([1,2,2,3,3,3,3,3,3,2,2,1]) 
_u, _l = np.unique(l, return_inverse=True) 
np.histogram(_l, bins=np.arange(_u.size+1))[0][_l] / _l.size