使用Python中的NumPy計算資料集的直方圖
直方圖是資料集分佈的圖形表示。它以一系列條形圖的形式表示資料,其中每個條形圖代表資料值的範圍,條形圖的高度代表在該範圍內定義的資料值的頻率。
這些主要用於表示數值資料的分佈,例如班級成績、人口分佈或員工收入分佈等。
在直方圖中,x軸表示資料值的範圍,劃分為區間;y軸表示每個區間內資料值範圍的頻率。直方圖可以透過將每個區間的頻率除以總資料值來進行歸一化,從而得到相對頻率直方圖,其中y軸表示每個區間的數值。
使用Python NumPy計算直方圖
在Python中,為了建立直方圖,我們有numpy、matplotlib和seaborn庫。在NumPy中,我們有名為histogram()的函式來處理直方圖資料。
語法
以下是為給定資料範圍建立直方圖的語法。
numpy.histogram(arr, bins, range, normed, weights, density)
其中:
arr 是輸入陣列
bins 是圖表中表示資料的條形數
range 定義直方圖中的值範圍
normed 支援density引數
weights 是可選引數,用於每個資料值的權重
Density 是將直方圖資料標準化為機率密度分佈的引數。
histogram函式的輸出將是一個元組,包含直方圖計數和bin邊緣。
示例
在下面的示例中,我們使用NumPy histogram()函式建立一個直方圖。在這裡,我們將一個數組作為輸入引數,將bins定義為10,因此直方圖將使用10個bin建立,其餘引數可以保持為none。
import numpy as np
arr = np.array([10,20,25,40,35,23])
hist = np.histogram(arr,bins = 10)
print("The histogram created:",hist)
輸出
The histogram created: (array([1, 0, 0, 1, 1, 1, 0, 0, 1, 1], dtype=int64), array([10., 13., 16., 19., 22., 25., 28., 31., 34., 37., 40.]))
示例
讓我們看另一個例子來理解numpy庫的histogram()函式。
import numpy as np
arr = np.array([[20,20,25],[40,35,23],[34,22,1]])
hist = np.histogram(arr,bins = 20)
print("The histogram created:",hist)
輸出
The histogram created: (array([1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1], dtype=int64), array([ 1. , 2.95, 4.9 , 6.85, 8.8 , 10.75, 12.7 , 14.65, 16.6 , 18.55, 20.5 , 22.45, 24.4 , 26.35, 28.3 , 30.25, 32.2 , 34.15, 36.1 , 38.05, 40. ]))
示例
在這個例子中,我們透過指定bins以及要使用的資料範圍來建立直方圖。以下程式碼可以作為參考。
import numpy as np
arr = np.array([[20,20,25],[40,35,23],[34,22,1]])
hist = np.histogram(arr,bins = 20, range = (1,10))
print("The histogram created:", hist)
輸出
The histogram created: (array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0], dtype=int64), array([ 1. , 1.45, 1.9 , 2.35, 2.8 , 3.25, 3.7 ,4.15, 4.6 , 5.05, 5.5 , 5.95, 6.4 , 6.85, 7.3 , 7.75, 8.2 , 8.65, 9.1 , 9.55, 10. ]))
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP