Modul numpy v Pythonu ponuja funkcijo, imenovano numpy.histogram() . Ta funkcija predstavlja frekvenco števila vrednosti, ki se primerjajo z nizom obsegov vrednosti. Ta funkcija je podobna hist() funkcija matplotlib.pyplot .
Preprosto povedano, ta funkcija se uporablja za izračun histograma niza podatkov.
Sintaksa:
numpy.histogram(x, bins=10, range=None, normed=None, weights=None, density=None)
Parametri:
x: array_like
Ta parameter definira sploščeno matriko, nad katero se izračuna histogram.
zabojniki: int ali zaporedje str ali skalarjev (neobvezno)
Če je ta parameter definiran kot celo število, potem v danem obsegu določa število enakih širokih binov. V nasprotnem primeru je definiran niz robov koša, ki se monotono povečuje. Vključuje tudi skrajni desni rob, ki omogoča neenakomerne širine koša. Najnovejša različica numpy nam omogoča, da nastavimo bin parametre kot niz, ki definira metodo za izračun optimalne širine bina.
obseg : (plavajoč, lebdeči) (neobvezno)
Ta parameter določa spodnje-zgornje obsege zabojnikov. Privzeto je obseg (x.min(), x.max()) . Vrednosti, ki so zunaj obsega, so prezrte. Razponi prvega elementa morajo biti enaki ali manjši od drugega elementa.
normirano: bool (neobvezno)
Ta parameter je enak argumentu gostote, vendar lahko daje napačen rezultat za neenake širine pladnja.
uteži: array_like (izbirno)
Ta parameter definira matriko, ki vsebuje uteži in je enake oblike kot 'x' .
gostota: bool (neobvezno)
Če je nastavljeno na True, bo prikazano število vzorcev v vsakem predalu. Če je njena vrednost False, bo funkcija gostote povzročila vrednost funkcije gostote verjetnosti v košu.
Vrne:
hist: niz
Funkcija gostote vrne vrednosti histograma.
edge_bin: matrika float dtype
Ta funkcija vrne robove koša (dolžina(hist+1)) .
Primer 1:
import numpy as np a=np.histogram([1, 5, 2], bins=[0, 1, 2, 3]) a
Izhod:
(array([0, 1, 1], dtype=int64), array([0, 1, 2, 3]))
V zgornji kodi
- Uvozili smo numpy z vzdevkom np.
- Razglasili smo spremenljivko 'a' in ji dodelili vrnjeno vrednost np.histogram() funkcijo.
- V funkciji smo posredovali matriko in vrednost zabojnika.
- Nazadnje smo poskušali natisniti vrednost 'a' .
V izhodu prikaže ndarray, ki vsebuje vrednosti histograma.
r in c programiranje
Primer 2:
import numpy as np x=np.histogram(np.arange(6), bins=np.arange(7), density=True) x
Izhod:
(array([0.16666667, 0.16666667, 0.16666667, 0.16666667, 0.16666667, 0.16666667]), array([0, 1, 2, 3, 4, 5, 6]))
Primer 3:
import numpy as np x=np.histogram([[1, 3, 1], [1, 3, 1]], bins=[0,1,2,3]) x
Izhod:
(array([0, 4, 2], dtype=int64), array([0, 1, 2, 3]))
Primer 4:
import numpy as np a = np.arange(8) hist, bin_edges = np.histogram(a, density=True) hist bin_edges
Izhod:
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. ])
Primer 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))
Izhod:
array([0.17857143, 0.17857143, 0.17857143, 0. , 0.17857143, 0.17857143, 0. , 0.17857143, 0.17857143, 0.17857143]) 1.4285714285714288 1.0
V zgornji kodi
- Uvozili smo numpy z vzdevkom np.
- Ustvarili smo niz 'a' uporabo np.arange() funkcijo.
- Razglasili smo spremenljivke 'hist' in 'bin_edges' in nato dodeli vrnjeno vrednost np.histogram() funkcijo.
- Prešli smo niz 'a' in nastavite 'gostota' na True v funkciji.
- Poskušali smo natisniti vrednost 'hist' .
- In nazadnje, poskušali smo izračunati vsoto vrednosti histograma z uporabo hist.sum() in np.sum() v katerem smo posredovali histogramske vrednosti in robove koša.
V izhodu prikaže ndarray, ki vsebuje vrednosti histograma in vsoto vrednosti histograma.