Я относительно новичок в python. Я построил гистограмму (скажем, P (r)) гауссовских случайных чисел (r), используя приведенный ниже код, где я использовал команду numpy.hist. Как я могу теперь получить значение P (r), соответствующее заданному значению r? Я имею в виду, что мне нужна высота бара, соответствующая заданному значению на оси х гистограммы. Код, который я использую, следующий:
import random
sig=0.2 # width of the Gaussian
N=100000
nbins=100
R=[]
for i in range(100000):
r=random.gauss(0,sig)
R.append(r)
i=i+1
import numpy as np
import matplotlib.pyplot as pl
pl.hist(R,nbins,normed=True)
pl.show()
Функция hist()
возвращает информацию, которую вы ищете:
n, bins, patches = pl.hist(R, nbins, normed=True)
n
- массив высот столбцов, а bins
- массив границ бинов. В данном примере len(n)
будет равно 100, а len(bins)
- 101.
Учитывая некоторое значение x
, вы можете использовать numpy.searchsorted()
, чтобы найти индекс bin, к которому относится это значение, и затем использовать n[index]
для извлечения соответствующей высоты столбца.