在KDB中制作指定bin大小直方图的最简单方法是什么
Python环境下的最简实现方案
根据你使用场景的不同,有以下几种无需手动实现复杂分箱逻辑的现成方案:
- 场景1:需要直接绘制直方图
使用matplotlib.pyplot.hist即可一步完成,你只需要预先按指定的bin大小b生成bin边界即可:
import numpy as np import matplotlib.pyplot as plt # 替换为你的实际数据和bin大小 x = np.random.randn(1000) b = 0.5 # 生成从最小值到最大值、步长为b的bin边界 bins = np.arange(min(x), max(x) + b, b) # 直接绘制直方图,方法内部自动完成分箱计数 plt.hist(x, bins=bins) plt.show()
- 场景2:只需要分箱计数结果不需要绘图
直接使用numpy内置的numpy.histogram方法即可得到统计结果:
import numpy as np x = np.random.randn(1000) b = 0.5 bins = np.arange(min(x), max(x) + b, b) # counts为每个bin的元素数量,bins为对应bin的边界 counts, bins = np.histogram(x, bins=bins)
- 场景3:无第三方库依赖的纯Python实现
可以搭配内置的collections.Counter实现快速分箱统计:
from collections import Counter # 替换为你的实际数据和bin大小 x = [0.2, 1.5, 0.8, 2.1, 1.1, 3.2] b = 1 counts = Counter((val // b) * b for val in x) # 输出示例:Counter({0.0: 2, 1.0: 2, 2.0: 1, 3.0: 1})
内容的提问来源于stack exchange,提问作者cjm2671
相关产品推荐
相关产品推荐

