【連續「Python利用Numpy數組進行數據處理(一)」】
2.【聚合函數】數學和統計方法[軸和0]
可以通過數組上的一組數學函數對整個數組或某個軸向的數組進行統計計算。
書寫方式舉例:
arr.mean() 或np.mean(arr)
#mean和sum這類的函數可以接受一個axis參數(用於計算該軸向上的統計值),最終結果是一個少一維的數組:
#搞清楚軸和0的問題【重要】
arr.mean(axis=1)
arr.sum(0)
表4-5 基本數組統計方法:
方法
說明
sum
對數組中全部或某軸向的元素求和。零長度的數組的sum為0
mean
算術平均數。零長度的數組的mean為NaN
std、var
分別為標準差和方差,自由度可調(默認為n)
min、max
最小值和最大值
argmin、argmax
分別為最小和最大元素的索引
cumsum
所有元素的累計和
sumprod
所有元素的累計積
3.用於布爾型數組的方法[any/all]
在上面這些方法中,布爾值會被強制轉換為1(True)和0(False)。因此,sum經常被用來對布爾型數組中的True值計數:
In [5]: arr=np.random.randn(100)
In [7]: (arr>0).sum() #正值的數量
Out[7]: 50
any用於測試數組中是否存在一個或多個True。
all檢查數組中所有值是否都是True。
In [2]: bools=np.array([False,False,True,False])
In [3]: bools.any()
Out[3]: True
In [4]: bools.all()
Out[4]: False
4.排序
Numpy數組也可以通過sort方法就地排序:
In [8]: arr=np.random.randn(8)
In [10]: arr.sort()
In [11]: arr
Out[11]:
array([-0.67762856, -0.60940946, -0.04936393, -0.02071468, 0.45711082,
1.23125481, 1.39542771, 1.53330519])
#軸上進行排序
arr.sort(1)
其中1為軸編號。
頂級方法np.sort返回的是數組的已排序副本,而就地排序則會修改數據本身。計算數組分位數最簡單的方法是對其進行排序,然後選取特定位置的值:
In [12]: large_arr=np.random.randn(1000)
In [13]: large_arr.sort()
In [14]: large_arr[0.05*len(large_arr)]
Out[14]: -1.5975734429305708
5.唯一化以及其他的集合邏輯
Numpy提供了一些針對一維ndarray的基本集合運算。
5.1 np.unique
主要用於找出數組中的唯一值並返回已排序的結果。
書寫方式:np.unique(names)
5.2 np.in1d
主要用於測試一個數組中的值在另一個數組中的成員資格,返回一個布爾型數組。
書寫方式:np.in1d(value1,value2)
In [3]: values=np.array([6,0,0,3,2,5,6])
In [4]: np.in1d(values,[2,3,6])
Out[4]: array([ True, False, False, True, True, False, True], dtype=bool)
「親,如果筆記對您有幫助,收藏的同時,記得給點個讚、加個關注哦!感謝!」「文中代碼均親測過,若有錯誤之處,歡迎批評指正,一起學習,一起成長!」
利用python進行數據分析