Python精講Numpy基礎(chǔ)崎岂,大牛筆記詳細(xì)解釋

以前總認(rèn)為Numpy是渣渣,直到深入接觸以后才知道功能這么強(qiáng)大闪湾〕甯剩堪比Matlab啊。果然是人生苦短途样,我用Python江醇。所以本文作為一個(gè)記錄&筆記,文章內(nèi)容大多數(shù)取自網(wǎng)絡(luò)以&官網(wǎng)快速入門等(文末有參考鏈接何暇,如有侵權(quán)請(qǐng)聯(lián)系本人改正)陶夜,希望可以幫助大家快速入門Numpy。如果你有Matlab基礎(chǔ)裆站,那么你能很快看懂本文B墒省!6舨濉(本文長(zhǎng)期更新!>佬蕖8斐啊)

一個(gè)栗子

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

創(chuàng)建矩陣

對(duì)于Python中的numpy模塊扣草,一般用其提供的ndarray對(duì)象了牛。 創(chuàng)建一個(gè)ndarray對(duì)象很簡(jiǎn)單,只要將一個(gè)list作為參數(shù)即可辰妙。 例如:

Python精講Numpy基礎(chǔ)鹰祸,大牛筆記詳細(xì)解釋

矩陣行數(shù)列數(shù)

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

矩陣按行列選取

矩陣的截取和list相同密浑,可以通過[](方括號(hào))來截取

Python精講Numpy基礎(chǔ)蛙婴,大牛筆記詳細(xì)解釋

矩陣按條件截取

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

按條件截取應(yīng)用較多的是對(duì)矩陣中滿足一定條件的元素變成特定的值尔破。 例如將矩陣中大于6的元素變成0

Python精講Numpy基礎(chǔ)街图,大牛筆記詳細(xì)解釋

Stacking together different arrays

矩陣的合并可以通過numpy中的hstack方法和vstack方法實(shí)現(xiàn):

Python精講Numpy基礎(chǔ)浇衬,大牛筆記詳細(xì)解釋
  • 矩陣的合并也可以通過concatenatef方法。
  1. np.concatenate( (a1,a2), axis=0 ) 等價(jià)于 np.vstack( (a1,a2) )

  2. np.concatenate( (a1,a2), axis=1 ) 等價(jià)于 np.hstack( (a1,a2) )

通過函數(shù)創(chuàng)建矩陣

arange

Python精講Numpy基礎(chǔ)餐济,大牛筆記詳細(xì)解釋

linspace/ logspace

Python精講Numpy基礎(chǔ)耘擂,大牛筆記詳細(xì)解釋

ones、zeros絮姆、eye醉冤、empty

ones創(chuàng)建全1矩陣 ,zeros創(chuàng)建全0矩陣 篙悯,eye創(chuàng)建單位矩陣 蚁阳,empty創(chuàng)建空矩陣(實(shí)際有值)

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋
Python精講Numpy基礎(chǔ)辕近,大牛筆記詳細(xì)解釋

fromstring

fromstring()方法可以將字符串轉(zhuǎn)化成ndarray對(duì)象韵吨,需要將字符串?dāng)?shù)字化時(shí)這個(gè)方法比較有用,可以獲得字符串的ascii碼序列移宅。

Python精講Numpy基礎(chǔ)飞几,大牛筆記詳細(xì)解釋

random

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

fromfunction

fromfunction()方法可以根據(jù)矩陣的行號(hào)列號(hào)生成矩陣的元素葛假。 例如創(chuàng)建一個(gè)矩陣堪藐,矩陣中的每個(gè)元素都為行號(hào)和列號(hào)的和。

Python精講Numpy基礎(chǔ)浅乔,大牛筆記詳細(xì)解釋

矩陣的運(yùn)算

常用矩陣運(yùn)算符

Numpy中的ndarray對(duì)象重載了許多運(yùn)算符倔喂,使用這些運(yùn)算符可以完成矩陣間對(duì)應(yīng)元素的運(yùn)算。

運(yùn)算符說明+矩陣對(duì)應(yīng)元素相加-矩陣對(duì)應(yīng)元素相減矩陣對(duì)應(yīng)元素相乘/矩陣對(duì)應(yīng)元素相除靖苇,如果都是整數(shù)則取商%矩陣對(duì)應(yīng)元素相除后取余數(shù)矩陣每個(gè)元素都取n次方席噩,如*2:每個(gè)元素都取平方

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

常用矩陣函數(shù)

同樣地贤壁,numpy中也定義了許多函數(shù)悼枢,使用這些函數(shù)可以將函數(shù)作用于矩陣中的每個(gè)元素。 表格中默認(rèn)導(dǎo)入了numpy模塊脾拆,即 import numpy as np 馒索。a為ndarray對(duì)象。

常用矩陣函數(shù)說明np.sin(a)對(duì)矩陣a中每個(gè)元素取正弦,sin(x)np.cos(a)對(duì)矩陣a中每個(gè)元素取余弦,cos(x)np.tan(a)對(duì)矩陣a中每個(gè)元素取正切,tan(x)np.arcsin(a)對(duì)矩陣a中每個(gè)元素取反正弦,arcsin(x)np.arccos(a)對(duì)矩陣a中每個(gè)元素取反余弦,arccos(x)np.arctan(a)對(duì)矩陣a中每個(gè)元素取反正切,arctan(x)np.exp(a)對(duì)矩陣a中每個(gè)元素取指數(shù)函數(shù),exnp.sqrt(a)對(duì)矩陣a中每個(gè)元素開根號(hào)

  • 當(dāng)矩陣中的元素不在函數(shù)定義域范圍內(nèi)名船,會(huì)產(chǎn)生RuntimeWarning绰上,結(jié)果為nan(not a number)

矩陣乘法(點(diǎn)乘)

矩陣乘法必須滿足矩陣乘法的條件,即第一個(gè)矩陣的列數(shù)等于第二個(gè)矩陣的行數(shù)渠驼。 矩陣乘法的函數(shù)為 dot 蜈块。

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

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

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

矩陣的轉(zhuǎn)置還有更簡(jiǎn)單的方法疯趟,就是a.T拘哨。

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

矩陣的逆

設(shè)A是數(shù)域上的一個(gè)n階方陣信峻,若在相同數(shù)域上存在另一個(gè)n階矩陣B倦青,使得: AB=BA=E。 則我們稱B是A的逆矩陣盹舞,而A則被稱為可逆矩陣产镐。

求矩陣的逆需要先導(dǎo)入numpy.linalg,用linalg的inv函數(shù)來求逆踢步。矩陣求逆的條件是矩陣應(yīng)該是方陣癣亚。

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

矩陣信息獲然裼 (如均值等)

最值

獲得矩陣中元素最大最小值的函數(shù)分別是max和min述雾,可以獲得整個(gè)矩陣、行或列的最大最小值兼丰。

Python精講Numpy基礎(chǔ)玻孟,大牛筆記詳細(xì)解釋

平均值

獲得矩陣中元素的平均值可以通過函數(shù)mean()。同樣地鳍征,可以獲得整個(gè)矩陣黍翎、行或列的平均值。

Python精講Numpy基礎(chǔ)艳丛,大牛筆記詳細(xì)解釋

方差

方差的函數(shù)為var(),方差函數(shù)var()相當(dāng)于函數(shù)mean(abs(x - x.mean())**2),其中x為矩陣匣掸。

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

標(biāo)準(zhǔn)差

標(biāo)準(zhǔn)差的函數(shù)為std()氮双。 std()相當(dāng)于sqrt(mean(abs(x - x.mean())**2))碰酝,或相當(dāng)于sqrt(x.var())。

Python精講Numpy基礎(chǔ)戴差,大牛筆記詳細(xì)解釋

中值

中值指的是將序列按大小順序排列后送爸,排在中間的那個(gè)值,如果有偶數(shù)個(gè)數(shù)造挽,則是排在中間兩個(gè)數(shù)的平均值。中值的函數(shù)是median()弄痹,調(diào)用方法為numpy.median(x,[axis])饭入,axis可指定軸方向,默認(rèn)axis=None肛真,對(duì)所有數(shù)取中值谐丢。

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

求和

矩陣求和的函數(shù)是sum(),可以對(duì)行乾忱,列讥珍,或整個(gè)矩陣求和

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

累積和

某位置累積和指的是該位置之前(包括該位置)所有元素的和窄瘟。例如序列[1,2,3,4,5]衷佃,其累計(jì)和為[1,3,6,10,15],即第一個(gè)元素為1蹄葱,第二個(gè)元素為1+2=3氏义,……,第五個(gè)元素為1+2+3+4+5=15图云。矩陣求累積和的函數(shù)是cumsum()惯悠,可以對(duì)行,列竣况,或整個(gè)矩陣求累積和克婶。

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

極差

Python精講Numpy基礎(chǔ)丹泉,大牛筆記詳細(xì)解釋

百分位數(shù)

Python精講Numpy基礎(chǔ)情萤,大牛筆記詳細(xì)解釋

序號(hào)參數(shù)及描述1.a 輸入數(shù)組2.q 要計(jì)算的百分位數(shù),在 0 ~ 100 之間3.axis 沿著它計(jì)算百分位數(shù)的軸

加權(quán)平均值

Python精講Numpy基礎(chǔ)嘀掸,大牛筆記詳細(xì)解釋

Shape Manipulation

Changing the shape of an array

Python精講Numpy基礎(chǔ)紫岩,大牛筆記詳細(xì)解釋

數(shù)組的形狀可以用以下方式改變。Note that the following three commands all return a modified array, but do not change the original array:

Python精講Numpy基礎(chǔ)睬塌,大牛筆記詳細(xì)解釋

The reshape function returns its argument with a modified shape, whereas the ndarray.resize method modifies the array itself:

Python精講Numpy基礎(chǔ)泉蝌,大牛筆記詳細(xì)解釋

If a dimension is given as -1 in a reshaping operation, the other dimensions are automatically calculated:

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

Splitting one array into several smaller ones

Using hsplit, you can split an array along its horizontal axis, either by specifying the number of equally shaped arrays to return, or by specifying the columns after which the division should occur:

Python精講Numpy基礎(chǔ)揩晴,大牛筆記詳細(xì)解釋

Copies and Views

When operating and manipulating arrays, their data is sometimes copied into a new array and sometimes not. This is often a source of confusion for beginners. There are three cases:

No Copy At All

a = b,改變b就相當(dāng)于改變a,或者相反勋陪。

Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

View or Shallow Copy

Different array objects can share the same data. The view method creates a new array object that looks at the same data.

Python精講Numpy基礎(chǔ)硫兰,大牛筆記詳細(xì)解釋

Slicing an array returns a view of it:

Python精講Numpy基礎(chǔ)诅愚,大牛筆記詳細(xì)解釋
Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋

Deep Copy

The copy method makes a complete copy of the array and its data.

Python精講Numpy基礎(chǔ)劫映,大牛筆記詳細(xì)解釋

曼德勃羅

Python精講Numpy基礎(chǔ)违孝,大牛筆記詳細(xì)解釋
Python精講Numpy基礎(chǔ),大牛筆記詳細(xì)解釋
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泳赋,一起剝皮案震驚了整個(gè)濱河市雌桑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祖今,老刑警劉巖校坑,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拣技,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡耍目,警方通過查閱死者的電腦和手機(jī)膏斤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來邪驮,“玉大人莫辨,你說我怎么就攤上這事「蹋” “怎么了衔掸?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)俺抽。 經(jīng)常有香客問我敞映,道長(zhǎng),這世上最難降的妖魔是什么磷斧? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任振愿,我火速辦了婚禮,結(jié)果婚禮上弛饭,老公的妹妹穿的比我還像新娘冕末。我一直安慰自己,他們只是感情好侣颂,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布档桃。 她就那樣靜靜地躺著,像睡著了一般憔晒。 火紅的嫁衣襯著肌膚如雪藻肄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天拒担,我揣著相機(jī)與錄音嘹屯,去河邊找鬼。 笑死从撼,一個(gè)胖子當(dāng)著我的面吹牛州弟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播低零,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼婆翔,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了掏婶?” 一聲冷哼從身側(cè)響起啃奴,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎气堕,沒想到半個(gè)月后纺腊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茎芭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年揖膜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梅桩。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡壹粟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出宿百,到底是詐尸還是另有隱情趁仙,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布垦页,位于F島的核電站雀费,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏痊焊。R本人自食惡果不足惜盏袄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望薄啥。 院中可真熱鬧辕羽,春花似錦、人聲如沸垄惧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)到逊。三九已至铣口,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蕾管,已是汗流浹背枷踏。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掰曾,地道東北人旭蠕。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像旷坦,于是被迫代替她去往敵國(guó)和親掏熬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 基礎(chǔ)篇NumPy的主要對(duì)象是同種元素的多維數(shù)組秒梅。這是一個(gè)所有的元素都是一種類型旗芬、通過一個(gè)正整數(shù)元組索引的元素表格(...
    oyan99閱讀 5,112評(píng)論 0 18
  • 前言 numpy是支持 Python語(yǔ)言的數(shù)值計(jì)算擴(kuò)充庫(kù),其擁有強(qiáng)大的高維度數(shù)組處理與矩陣運(yùn)算能力捆蜀。除此之外疮丛,nu...
    TensorFlow開發(fā)者閱讀 3,199評(píng)論 0 35
  • 介紹 NumPy 是一個(gè) Python 包幔嫂。 它代表 “Numeric Python”。 它是一個(gè)由多維數(shù)組對(duì)象和...
    喔蕾喔蕾喔蕾蕾蕾閱讀 1,756評(píng)論 0 5
  • import numpy as np 創(chuàng)建ndarray data1 = [6,7.5, 8, 0, 1]arr1...
    陸文斌閱讀 632評(píng)論 0 1
  • Numpy的組成與功能 Numpy(Numeric Python)可以被理解為一個(gè)用python實(shí)現(xiàn)的科學(xué)計(jì)算包,...
    不做大哥好多年閱讀 4,271評(píng)論 0 10