日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

numpy方法总结

發(fā)布時間:2023/12/4 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 numpy方法总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

一、數(shù)組方法

創(chuàng)建數(shù)組:arange()創(chuàng)建一維數(shù)組;array()創(chuàng)建一維或多維數(shù)組,其參數(shù)是類似于數(shù)組的對象,如列表等

反過來轉(zhuǎn)換則可以使用numpy.ndarray.tolist()函數(shù),如a.tolist()

創(chuàng)建數(shù)組:np.zeros((2,3)),或者np.ones((2,3)),參數(shù)是一個元組分別表示行數(shù)和列數(shù)

對應(yīng)元素相乘,a * b,得到一個新的矩陣,形狀要一致;但是允許a是向量而b是矩陣,a的列數(shù)必須等于b的列數(shù),a與每個行向量對應(yīng)元素相乘得到行向量。

+ - ?/ 與 * 的運算規(guī)則相同。

數(shù)學(xué)上定義的矩陣乘法 np.dot(a, b)。如果形狀不匹配會報錯;但是允許允許a和b都是向量,返回兩個向量的內(nèi)積。只要有一個參數(shù)不是向量,就應(yīng)用矩陣乘法。

PS:總之就是,向量很特殊,在運算中可以自由轉(zhuǎn)置而不會出錯,運算的返回值如果維度為1,也一律用行向量[]表示)

讀取數(shù)組元素:如a[0],a[0,0]

數(shù)組變形:如b=a.reshape(2,3,4)將得到原數(shù)組變?yōu)?*3*4的三維數(shù)組后的數(shù)組;或是a.shape=(2,3,4)或a.resize(2,3,4)直接改變數(shù)組a的形狀

數(shù)組組合:水平組合hstack((a,b))或concatenate((a,b),axis=1);垂直組合vstack((a,b))或concatenate((a,b),axis=0);深度組合dstack((a,b))

數(shù)組分割(與數(shù)組組合相反):分別有hsplit,vsplit,dsplit,split(split與concatenate相對應(yīng))

將np數(shù)組變?yōu)閜y列表:a.tolist()

數(shù)組排序(小到大):列排列np.msort(a),行排列np.sort(a),np.argsort(a)排序后返回下標(biāo)

復(fù)數(shù)排序:np.sort_complex(a)按先實部后虛部排序

數(shù)組的插入:np.searchsorted(a,b)將b插入原有序數(shù)組a,并返回插入元素的索引值

類型轉(zhuǎn)換:如a.astype(int),np的數(shù)據(jù)類型比py豐富,且每種類型都有轉(zhuǎn)換方法

條件查找,返回滿足條件的數(shù)組元素的索引值:np.where(條件)

條件查找,返回下標(biāo):np.argwhere(條件)

條件查找,返回滿足條件的數(shù)組元素:np.extract([條件],a)

根據(jù)b中元素作為索引,查找a中對應(yīng)元素:np.take(a,b)一維

數(shù)組中最小最大元素的索引:np.argmin(a),np.argmax(a)

多個數(shù)組的對應(yīng)位置上元素大小的比較:np.maximum(a,b,c,…..)返回每個索引位置上的最大值,np.minimum(…….)相反

將a中元素都置為b:a.fill(b)

每個數(shù)組元素的指數(shù):np.exp(a)

生成等差行向量:如np.linspace(1,6,10)則得到1到6之間的均勻分布,總共返回10個數(shù)

求余:np.mod(a,n)相當(dāng)于a%n,np.fmod(a,n)仍為求余且余數(shù)的正負(fù)由a決定

計算平均值:np.mean(a)

?

計算最大值:amax(a, axis=None, out=None, keepdims=False) 。Return the maximum of an array or maximum along an axis.

?

計算加權(quán)平均值:np.average(a,b),其中b是權(quán)重

計算數(shù)組的極差:np.pth(a)=max(a)-min(a)

計算方差(總體方差):np.var(a)

標(biāo)準(zhǔn)差:np.std(a)

算術(shù)平方根,a為浮點數(shù)類型:np.sqrt(a)

對數(shù):np.log(a)

修剪數(shù)組,將數(shù)組中小于x的數(shù)均換為x,大于y的數(shù)均換為y:a.clip(x,y)

所有數(shù)組元素乘積:a.prod()

數(shù)組元素的累積乘積:a.cumprod()

數(shù)組元素的符號:np.sign(a),返回數(shù)組中各元素的正負(fù)符號,用1和-1表示

數(shù)組元素分類:np.piecewise(a,[條件],[返回值]),分段給定取值,根據(jù)判斷條件給元素分類,并返回設(shè)定的返回值。

判斷兩數(shù)組是否相等: np.array_equal(a,b)

判斷數(shù)組元素是否為實數(shù): np.isreal(a)

去除數(shù)組中首尾為0的元素:np.trim_zeros(a)

對浮點數(shù)取整,但不改變浮點數(shù)類型:np.rint(a)

?

二、數(shù)組屬性

1.獲取數(shù)組每一維度的大小:a.shape

2.獲取數(shù)組維度:a.ndim

3.元素個數(shù):a.size

4.數(shù)組元素在內(nèi)存中的字節(jié)數(shù):a.itemsize

5.數(shù)組字節(jié)數(shù):a.nbytes==a.size*a.itemsize

6.數(shù)組元素覆蓋:a.flat=1,則a中數(shù)組元素都被1覆蓋

7.數(shù)組轉(zhuǎn)置:a.T

不能求逆、求協(xié)方差、跡等,不適用于復(fù)雜科學(xué)計算,可以將array轉(zhuǎn)換成matrix。

?

三、矩陣方法

創(chuàng)建矩陣:np.mat(‘…’)通過字符串格式創(chuàng)建,np.mat(a)通過array數(shù)組創(chuàng)建,也可用matrix或bmat函數(shù)創(chuàng)建

matrix不會自動轉(zhuǎn)換行列向量。matrix的所有運算默認(rèn)都是數(shù)學(xué)上定義的矩陣運算,除非用mutiply函數(shù)實現(xiàn)點乘。

創(chuàng)建復(fù)合矩陣:np.bmat(‘A B’,’AB’),用A和B創(chuàng)建復(fù)合矩陣AB(字符串格式)

創(chuàng)建n*n維單位矩陣:np.eye(n)

矩陣的轉(zhuǎn)置:A.T

矩陣的逆矩陣:A.I

計算協(xié)方差矩陣:np.cov(x),np.cov(x,y)

計算矩陣的跡(對角線元素和):a.trace()

相關(guān)系數(shù):np.corrcoef(x,y)

給出對角線元素:a.diagonal()

?

四、線性代數(shù)

估計線性模型中的系數(shù):a=np.linalg.lstsq(x,b),有b=a*x

求方陣的逆矩陣:np.linalg.inv(A)

求廣義逆矩陣:np.linalg.pinv(A)

求矩陣的行列式:np.linalg.det(A)

解形如AX=b的線性方程組:np.linalg.solve(A,b)

求矩陣的特征值:np.linalg.eigvals(A)

求特征值和特征向量:np.linalg.eig(A)

Svd分解:np.linalg.svd(A)

?

五、概率分布

產(chǎn)生二項分布的隨機數(shù):np.random.binomial(n,p,size=…),其中n,p,size分別是每輪試驗次數(shù)、概率、輪數(shù)

產(chǎn)生超幾何分布隨機數(shù):np.random.hypergeometric(n1,n2,n,size=…),其中參數(shù)意義分別是物件1總量、物件2總量、每次采樣數(shù)、試驗次數(shù)

產(chǎn)生N個正態(tài)分布的隨機數(shù):np.random.normal(均值,標(biāo)準(zhǔn)差,N)

產(chǎn)生N個對數(shù)正態(tài)分布的隨機數(shù):np.random.lognormal(mean,sigma,N)

?

六、多項式

多項式擬合:poly= np.polyfit(x,a,n),擬合點集a得到n級多項式,其中x為橫軸長度,返回多項式的系數(shù)

多項式求導(dǎo)函數(shù):np.polyder(poly),返回導(dǎo)函數(shù)的系數(shù)

得到多項式的n階導(dǎo)函數(shù):多項式.deriv(m = n)

多項式求根:np.roots(poly)

多項式在某點上的值:np.polyval(poly,x[n]),返回poly多項式在橫軸點上x[n]上的值

兩個多項式做差運算: np.polysub(a,b)

?

Matpoltlib簡單繪圖方法

引入簡單繪圖的包import matplotlib.pyplot as plt,最后用plt.show()顯示圖像

基本畫圖方法:plt.plot(x,y),plt.xlabel(‘x’),plt.ylabel(‘y’),plt.title(‘…’)

子圖:plt.subplot(abc),其中abc分別表示子圖行數(shù)、列數(shù)、序號

創(chuàng)建繪圖組件的頂層容器:fig = plt.figure()

添加子圖:ax = fig.add_subplot(abc)

設(shè)置橫軸上的主定位器:ax.xaxis.set_major_locator(…)

繪制方圖:plt.hist(a,b),a為長方形的左橫坐標(biāo)值,b為柱高

繪制散點圖:plt.scatter(x,y,c = ‘..’,s = ..),c表示顏色,s表示大小

添加網(wǎng)格線:plt.grid(True)

添加注釋:如ax.annotate('x', xy=xpoint, textcoords='offsetpoints',xytext=(-50, 30), arrowprops=dict(arrowstyle="->"))

?

增加圖例:如plt.legend(loc='best', fancybox=True)

對坐標(biāo)取對數(shù):橫坐標(biāo)plt.semilogx(),縱坐標(biāo)plt.semilogy(),橫縱同時plt.loglog()

?

轉(zhuǎn)載于:https://my.oschina.net/Bettyty/blog/820942

總結(jié)

以上是生活随笔為你收集整理的numpy方法总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。