Which elements of list go into which histogram bins?(列表中的哪些元素放入哪些直方图箱中?)
本文介绍了列表中的哪些元素放入哪些直方图箱中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从直方图绘制比例散点图。散点图相当简单,制作直方图、查找仓位中心、散点图。
nbins=7
# Some example data
A = np.random.randint(0, 10, 100)
B = np.random.rand(100)
counts, binEdges=np.histogram(A,bins=nbins)
bincenters = 0.5*(binEdges[1:]+binEdges[:-1])
fig = plt.figure(figsize=(7,5))
ax = fig.add_subplot(111)
ax.scatter(bincenters,counts,c='k', marker='.')
ax_setup(ax, 'X', 'Y')
plt.show()
但是我希望A
的每个元素只向其绑定贡献一个缩放值,该缩放值存储在B
中。(即,我希望每个bin不是该bin的A
中的元素计数,而是B
中的相应值之和)
为此,我尝试创建一个列表C
(与A
和B
长度相同),该列表为A
的每个元素分配仓号,然后将B
中的所有值相加到同一仓位。我想numpy.searchsorted()
就是我需要的,例如
C = bincenters.searchsorted(A, 'right')
但是这没有正确分配,并且似乎没有返回正确的箱数。
那么,我如何创建一个列表来告诉我每个数据元素都属于哪个直方图框?
推荐答案
您写的
但我希望A的每个元素只向其bin贡献一个缩放值,该缩放值存储在B中(即,不是每个bin是该bin的A的元素计数,而是希望每个bin是B的相应值的总和)
IIUC,numpy.histogram
中已通过weights
参数:
与a形状相同的权重数组。a中的每个值仅将其关联的权重贡献给仓位计数(而不是1)。如果Normded为True,则会规格化权重,因此范围内的密度积分仍为1。
因此,对于您的情况,它将只是
counts, binEdges=np.histogram(A, bins=nbins, weights=B)
另外一点:如果您打算绘制直方图,请注意,您可以直接使用matplotlib.pyplot
的实用程序函数(也需要weights
):
from matplotlib import pyplot as plt
plt.hist(A, bins=nbins, weights=B);
最后,如果您打算将作业放到垃圾箱中,numpy.digitize
就是这样做的:
nbins=7
# Some example data
A = np.random.randint(0, 10, 10)
B = np.random.rand(10)
counts, binEdges=np.histogram(A,bins=nbins)
>>> binEdges, np.digitize(A, binEdges)
array([ 0. , 1.28571429, 2.57142857, 3.85714286, 5.14285714,
6.42857143, 7.71428571, 9. ])
这篇关于列表中的哪些元素放入哪些直方图箱中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:列表中的哪些元素放入哪些直方图箱中?


猜你喜欢
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01
- padding='same' 转换为 PyTorch padding=# 2022-01-01
- 沿轴计算直方图 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- 如何将一个类的函数分成多个文件? 2022-01-01
- python-m http.server 443--使用SSL? 2022-01-01
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01
- pytorch 中的自适应池是如何工作的? 2022-07-12
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01