?1、通用函數,是一種在ndarray數據中進行逐元素操作的函數。某些函數接受一個或多個標量數值,并產生一個或多個標量結果,通用函數就是對這些函數的封裝。
1、常用的一元通用函數有:abs\fabs sqrt? square exp log\log2\log10\log1p sign ceil floor rint modf isnan sin\cos\tan\sinh\cosh\tanh arccos\arctan\arcsin logical_not
2、二元通用函數:add subtract multiply divide、floor_divide power maximun、fmax minimun、fax mod copysign greater、greater_equl、less
2、將條件邏輯作為數組操作,np.where函數,其是三元表達式 x if condition else y的向量化版本。
1 xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5]) 2 yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5]) 3 cond = np.array([True, False, True, True, False]) 4 result = np.where(cond, xarr, yarr) # result中的元素來源:若cond中為True,返回xarr中對應元素,否則返回yarr中的元素。 5 result 6 Out[59]: 7 >>>array([1.1, 2.2, 1.3, 1.4, 2.5])
3、數學和統計方法
1、聚合函數(又稱縮減函數):例如sun、mean、std、var等等,mean、sum等可以接受一個可選參數 axis,用于計算指定軸上的統計值,axis =0計算行方向,axis =1計算列方向。
2、其他基礎統計方法,min,max? argmin,argmin 返回最小值、最大值的索引值 cumsum\cumprod 從0、從1開始計算累計值
4、布爾值數組的方法
1、sum()可以用來統計布爾數組中的True的個數
1 arr = np.random.randn(100) 2 (arr > 0).sum() 3 Out[62]: 4 >>>46
2、對于布爾值數組,有兩個比較有用的方法:any()檢查數組中是否至少有一個True, all()檢查是否每個值都是True
1 bools = np.array([False, False, True, False]) 2 print(bools.any()) 3 print(bools.all()) 4 True 5 False
5、排序
1、sort(x),直接使用 x.sort()的形式,在原數組上進行操作,使用np.sort(x)的形式返回的是已經排序好的數組拷貝。
6、唯一值與其他集合操作
1、np.unique(x) ,返回的是數組中唯一值排序后形成的數組;
2、np.in1d(x),檢查一個數組中的值是否存在于另外一個數組中,返回一個布爾值數組;
其他數組集合操作:intersect1d(x,y) 計算交集并排序;union1d(x,y)計算并集并排序;setdiff1d(x,y)差集;setxor1d(x,y)異或集
7、使用數組進行文件輸入和輸出
np.load()加載 np.save()保存
8、線性代數
1、矩陣乘法,NumPy中,” * “表示逐元素相乘,矩陣乘法用dot()函數,x.dot(y)或者np.(x,y)
2、numpy.linalg 矩陣分解的標準函數集,常用函數有:dot diag trace 計算對角元素和 eig 計算仿真的特征值和特征向量 inv 求逆 qr 計算QR分解 svd 計算奇異值分解(SVD) solve 求解x的線性系統 lstsq 計算最小二乘解
9、偽隨機數生成
1、numpy.random模塊補充了python內建的random模塊的不足,可以高效地生成多種概率分布下地完整樣本數據值。
random下的部分常用函數:
seed 向隨機數生成器傳遞隨機狀態種子; permutation 返回一個隨機序列的隨機排列,或者返回一個亂序的整數范圍序列 ; shufffle 隨機排列一個序列
rand 從均勻分布中抽取樣本 randint 從給定的范圍內隨機抽取整數 randn 從均值0方差1的正態分布中抽取樣本 binomial從二項分布中抽取樣本
noamal 從高斯分布中抽取樣本 beta 從beta分布中抽取樣本 chisquare 從卡方分布中抽取樣本 gamma 從伽馬分布中抽取樣本 uniform 從[0,1]均勻分布中抽取樣本
?