拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 从plt.hist获取所有bin的中间位置

从plt.hist获取所有bin的中间位置

白鹭 - 2022-01-24 2120 0 0

我已经制作了一个直方图,plt.hist()现在我有一个带有这种形式的 bin 的阵列:

bins = [0, 1, 2, 3, 4, 5] # n edges

有没有一种简单的方法可以从这些垃圾箱中取出中间件?最终结果将是一个包含以下n - 1中心的串列

centers = [0.5, 1.5, 2.5, 3.5, 4.5] # n - 1 centers

我事先不知道垃圾箱会是什么。

uj5u.com热心网友回复:

这似乎足够好:

x = np.array([0, 1, 2, 3, 4, 5, 6])
y = [(x[i]   x[i   1]) / 2 for i in range(len(x[:-1]))]
print(y)
# [0.5, 1.5, 2.5, 3.5, 4.5, 5.5]

uj5u.com热心网友回复:

In [136]: bins = np.array([0, 1, 2, 3, 4, 5])

In [137]: centers = 0.5*(bins[:-1]   bins[1:])

In [138]: centers
Out[138]: array([0.5, 1.5, 2.5, 3.5, 4.5])

uj5u.com热心网友回复:

这些解决方案都展示了相同的想法,即找到阵列中相邻点的平均值。这是给猫剥皮的另一种方法:

import numpy

def centers(bins):
    return np.diff(bins) / 2   bins[:-1]

bins = np.arange(0, 7)
print(centers(bins))
# array([0.5, 1.5, 2.5, 3.5, 4.5, 5.5])
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *