我已經制作了一個直方圖,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])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/389336.html
標籤:Python 麻木的 matplotlib
