Модулът numpy на Python предоставя функция, наречена numpy.histogram() . Тази функция представлява честотата на броя стойности, които се сравняват с набор от диапазони на стойности. Тази функция е подобна на хист() функция на matplotlib.pyplot .
С прости думи, тази функция се използва за изчисляване на хистограмата на набора от данни.
Синтаксис:
numpy.histogram(x, bins=10, range=None, normed=None, weights=None, density=None)
Параметри:
x: array_like
машинопис foreach
Този параметър дефинира сплескан масив, върху който се изчислява хистограмата.
контейнери: int или последователност от str или скалари (по избор)
Ако този параметър е дефиниран като цяло число, тогава в дадения диапазон той определя броя на контейнерите с еднаква ширина. В противен случай се дефинира масив от ръбове на контейнери, които се увеличават монотонно. Той също така включва най-десния ръб, който позволява неравномерна ширина на контейнера. Най-новата версия на numpy ни позволява да задаваме параметри на кошчето като низ, който дефинира метод за изчисляване на оптималната ширина на контейнера.
диапазон : (плаващо, плаващо) (по избор)
Този параметър определя долния-горния обхват на контейнерите. По подразбиране диапазонът е (x.min(), x.max()) . Игнорират се стойностите, които са извън диапазона. Диапазоните на първия елемент трябва да са равни или по-малки от втория елемент.
нормиран: bool (по избор)
Този параметър е същият като аргумента за плътност, но може да даде грешен резултат за неравномерни ширини на контейнера.
тегла: array_like (по избор)
Този параметър дефинира масив, който съдържа тегла и има същата форма като 'х' .
грешка по време на изпълнение
плътност: bool (по избор)
Ако е зададено на True, ще доведе до броя на пробите във всеки контейнер. Ако стойността му е False, функцията за плътност ще доведе до стойността на функцията за плътност на вероятността в контейнера.
Се завръща:
хист: масив
Функцията за плътност връща стойностите на хистограмата.
edge_bin: масив от float dtype
Тази функция връща ръбовете на контейнера (дължина(hist+1)) .
Пример 1:
import numpy as np a=np.histogram([1, 5, 2], bins=[0, 1, 2, 3]) a
Изход:
(array([0, 1, 1], dtype=int64), array([0, 1, 2, 3]))
В горния код
- Импортирахме numpy с псевдоним np.
- Декларирахме променливата 'a' и присвоихме върнатата стойност на np.histogram() функция.
- Предадохме масив и стойността на контейнера във функцията.
- Накрая се опитахме да отпечатаме стойността на 'а' .
В изхода той показва ndarray, който съдържа стойностите на хистограмата.
Пример 2:
import numpy as np x=np.histogram(np.arange(6), bins=np.arange(7), density=True) x
Изход:
(array([0.16666667, 0.16666667, 0.16666667, 0.16666667, 0.16666667, 0.16666667]), array([0, 1, 2, 3, 4, 5, 6]))
Пример 3:
import numpy as np x=np.histogram([[1, 3, 1], [1, 3, 1]], bins=[0,1,2,3]) x
Изход:
nbsp
(array([0, 4, 2], dtype=int64), array([0, 1, 2, 3]))
Пример 4:
import numpy as np a = np.arange(8) hist, bin_edges = np.histogram(a, density=True) hist bin_edges
Изход:
array([0.17857143, 0.17857143, 0.17857143, 0. , 0.17857143, 0.17857143, 0. , 0.17857143, 0.17857143, 0.17857143]) array([0. , 0.7, 1.4, 2.1, 2.8, 3.5, 4.2, 4.9, 5.6, 6.3, 7. ])
Пример 5:
import numpy as np a = np.arange(8) hist, bin_edges = np.histogram(a, density=True) hist hist.sum() np.sum(hist * np.diff(bin_edges))
Изход:
array([0.17857143, 0.17857143, 0.17857143, 0. , 0.17857143, 0.17857143, 0. , 0.17857143, 0.17857143, 0.17857143]) 1.4285714285714288 1.0
В горния код
- Импортирахме numpy с псевдоним np.
- Създадохме масив 'а' използвайки np.arange() функция.
- Имаме декларирани променливи 'хист' и 'bin_edges' и след това присвои върнатата стойност на np.histogram() функция.
- Минахме масива 'а' и задайте 'плътност' на True във функцията.
- Опитахме се да отпечатаме стойността на 'хист' .
- И накрая, опитахме се да изчислим сумата от стойностите на хистограмата, използвайки hist.sum() и np.sum() в който предадохме стойности на хистограма и ръбове на кошчето.
В изхода той показва ndarray, който съдържа стойностите на хистограмата и сумата от стойностите на хистограмата.