Numpy包簡單介紹


詳細介紹可以看Numpy幫助,也有很多資料,此文僅是一個簡述性質的集成文章

1.簡介

Numpy是Python的一個擴展包,語法和Matlab有很多相似之處。它支持高維數組和矩陣運算,也提供了許多數組和矩陣運算的函數。另外,它在數組和矩陣運算方面速度很快,效率很高。對數組的運算都可以算在每個元素上。如,A*2(A為3*3的矩陣),結果是A中的9個元素都乘2

1.1 索引與切片

數組索引一般用 [] 來實現,一維arratName[行],二維aName[行,列],三維[頁,行,列],可以用冒號:代替某一維度,表示取該維度所有元素。如a[[1,2],[3,4]],a[:,1]為[2,4]

布爾型索引  布爾型數組的長度必須和被索引的軸長度一致

花式索引  利用整數數組進行索引

print a[[4, 3, 0, 6]] # 打印a[4]、a[3]、a[0]和a[6]。

切片如下: a為3*3*3矩陣  b = a[1, :,:]

1.2 復制與鏡像

用.copy()方法復制數組,= 直接賦值。賦值只能產生鏡像,僅是給變量增加一個名稱;復制可以生成另一個變量,兩個變量相互獨立。

1.3 數組轉置和軸對換

轉置為 arrayName.T  

矩陣相乘 np.dot(array1,array2)

高維軸對換 .transpose  或  .swapaxes

1.4 按條件邏輯邏輯運算

如:a=np.arange(9).reshap(3,3)     print(a>5), print(a[a>5])。第一個輸出是True和False的矩陣,第二個輸出6,7,8,9

因此,可以按條件選擇數組元素

np.where的使用   語法:np.where(條件,表達式1,表達式2)條件為真執行表達式1,條件為假執行表達式2.

1.5 排序

.sort()   0為按列排序,1為按行排序

2.常用函數介紹

構造函數

說明

array

將輸入數據(列表、元組、數組等)轉換為ndarray

arange

類似於range,返回一個ndarray

ones

根據指定大小和dtype創建一個全1數組

zeros

根據指定大小和dtype創建一個全0數組

empty

創建數組,只分配內存空間不填充任何值

eye,  identity

創建單位矩陣

運算函數(一元)

說明

abs,fabs

計算絕對值,計算復數的模。對於非復數,用fabs更快

sqrt

開方

sqare

平方  相當於a**2

exp

計算各元素的e^x

log, log10, log2, log(1+x)

自然對數,底數為10,底數為2和log(1+x)

ceil

向上取整

floor

向下取整

sign

計算各元素的正負號

rint

四舍五入到整數,保留dtype

modf

將整數部分和小數部分以兩個獨立數組返回

cos,sin,tan

三角函數

arccos,arcsin,arctan

反三角

運算函數(二元)

說明

add

將數組中對應的元素相加

subtract

從第一個數組中減去第二個數組中的元素

multiply

元素相乘

Divide, floor_divide

相除,或向下取整除法

power

Power(A,B) 計算A^B

Max  fmax

計算最大值,fmax忽略NaN

Min   fmin

計算最小值,fmin忽略NaN

mod

求模

copysign

將第二數組中的符號復制給第一個數組元素

greater,greater_equal

less,less_equal,equal,

not_equal

執行元素級的比較,最終產生布爾型數組

                                   

Logical_and, logical_or

Logical_xor

執行元素級的真值邏輯運算,產生布爾型數組

 

數學和統計方法

說明

sum

對數組中全部或某軸向的元素求和,0為按列,1為按行

mean

求平均

std, var

標准差和方差

min, max

最小值和最大值

argmin,argmax

最大值和最小值的索引

cumsum

所有元素累計和

cumprod

所有元素累計積

 

去重、集合運算函數

說明

unique(x)

計算X中的唯一元素,並返回有序結果

intersect1d(x,y)

計算x和y中的公共元素,並返回有序結果

union1d(x,y)

計算x和y的並集,返回有序結果

in1d(x,y)

得到一個描述x的元素是否包含於y的布爾型數組

setdiff1d(x,y)

集合的差,即元素在X中且不在Y中

setxor1d(x,y)

集合的異或,即存在一個數組中,另外一個數組中沒有

常用的np.linalg函數

說明

diag

以一位數組的形式返回方陣的對角線

dot

矩陣乘法

trace

計算對角線元素的和

det

計算矩陣行列式

eig

計算方陣的特征值和特征向量

inv

計算方陣的逆

pinv

計算矩陣的Moore-Penrose偽逆

qr

計算QR分解

svd

計算奇異值分解

solve

解線性方程Ax=b,A為一個方陣

lstsq

計算Ax=b的最小二乘解

 

隨機數生成 函數

說明

seed

確定隨機數生成器的種子

permutation

返回一個序列的隨機排列

shuffle

對一個序列隨機亂序

rand

產生均勻分布的樣本值

randint

從給定的上下限范圍內隨機選取整數

randn

產生正態分布(平均值為0,標准差為1)

binomial

產生二項分布的樣本值

normal

產生正態(高斯)分布的樣本值

beta

產生Beta分布的樣本值

chisquare

產生卡方分布的樣本值

gamma

產生Gramma分布的樣本值

uniform

產生在[0,1]中均勻分布的樣本值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM