Как получить столбцы высоты гистограммы P (x), соответствующие данному x?

1

Я относительно новичок в 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()
Теги:
numpy

1 ответ

3

Функция hist() возвращает информацию, которую вы ищете:

n, bins, patches = pl.hist(R, nbins, normed=True)

n - массив высот столбцов, а bins - массив границ бинов. В данном примере len(n) будет равно 100, а len(bins) - 101.

Учитывая некоторое значение x, вы можете использовать numpy.searchsorted(), чтобы найти индекс bin, к которому относится это значение, и затем использовать n[index] для извлечения соответствующей высоты столбца.

  • 0
    Большое спасибо, Свен. Это хорошее и чистое решение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню