數(shù)據(jù)科學三基友之Numpy

NumPy是Python語言的一個擴充程序庫 ,支持大量的維度數(shù)組與矩陣運算捎琐,此外也針對數(shù)組運算提供大量的數(shù)學函數(shù)庫 扮叨。numpy以及依賴它產(chǎn)生的pandas廣泛運用于數(shù)據(jù)分析和機器學習。

Numpy創(chuàng)建數(shù)據(jù):

import numpy as np

list_1  = [1,2,3]
array_1 = np.array([1,2,3],dtype='int')
print(array_1)
>>>[1 2 3]

#多維度
list_2  = [[1,2],[3,4]]
array_2 = np.array(list_2)
print(array_2)
>>>[[1 2]
    [3 4]]

Numpy中的數(shù)組和列表有些相似之處 ,數(shù)組有多個維度 。dtype為可選參數(shù) ,修飾數(shù)組內(nèi)結(jié)構(gòu)

Numpy創(chuàng)建N維數(shù)組的api函數(shù)

import numpy as np

array_3 = np.array([1,2,3,4,5,6,7,8,9]).reshape((3,3))
print(array_3)

>>>[[1 2 3]
    [4 5 6]
    [7 8 9]]

array_4 = np.ones([5,5])
print(array_4)

>>>[[1. 1. 1. 1. 1.]
    [1. 1. 1. 1. 1.]
    [1. 1. 1. 1. 1.]
    [1. 1. 1. 1. 1.]
    [1. 1. 1. 1. 1.]]

array_5 = np.zeros([5,5])
print(array_5)

>>>[[0. 0. 0. 0. 0.]
    [0. 0. 0. 0. 0.]
    [0. 0. 0. 0. 0.]
    [0. 0. 0. 0. 0.]
    [0. 0. 0. 0. 0.]]

array_6 = np.random.randint(0,10,(4,3))
print(array_6)

>>>[[3 8 3]
    [1 2 2]
    [1 8 4]
    [1 4 8]]

.reshape可以規(guī)定數(shù)組的維度 :(m,n)m行n列 秘通。ones填充數(shù)組所有元素為1 ,zeros填充數(shù)組所有元素為0 敛熬。random.randint(0,10,(4,3)) 函數(shù)隨機生成(0,10)四行三列數(shù)組肺稀。

Numpy的索引與切片:

array_7 = np.random.randint(0,10,(5,5))
print(array_7)
print(array_7[2,:])  #第三行所有元素
print(array_7[:,2])  #第三列所有元素
print(array_7[2,2])  #第三行第三列的元素

print(array_7[2,1:3])    #第三行的二到三列所有元素
print(array_7[1:3,2])    #第二到三行的三列所有元素
print(array_7[1:3,1:3])  #第二到三行的二到三列所有元素
>>>
[[3 5 9 0 4]       
 [0 3 0 7 9]
 [0 4 3 0 7]
 [9 8 4 0 5]
 [3 0 8 8 5]]

[0 4 3 0 7]
[9 0 3 4 8]
3
[4 3]
[0 3]
[[3 0]
 [4 3]]

Numpy的計算

便于我們更好的理解Numpy的計算 ,這里我們引入一個實例 :四六級成績 給出一個list 应民,有四位同學的四六級成績 话原。對于四級沒過的同學 诲锹,這里的六級成績我們?nèi)?繁仁。

取出score的value ,重新組合為新的列表 然后归园,將數(shù)組轉(zhuǎn)為array黄虱。

scroe = [{'老王':[444,369]},{'三毛':[333,0]},{'徐四':[578,496]},{'寶兒':[456,425]}]
scroes = []
for x in scroe:

    for key,value in x.items():
        scroes.append(value)
print(scroes)
array_8 = np.array(scroes)
print(array_8)

>>>[[444, 369], [333, 0], [578, 496], [456, 425]]
   [[444 369]
   [333   0]
   [578 496]
   [456 425]]

條件運算:

array_9 = np.array(scroes)
print(array_9>425)                               #返回
print(np.where(array_9 > 425, '合格', '不合格'))  #三目運算

>>>[[ True False]
   [False False]
   [ True  True]
   [ True False]]
  [['合格' '不合格']
   ['不合格' '不合格']
   ['合格' '合格']
   ['合格' '不合格']]

統(tǒng)計運算:

result_max_1 = np.amax(array_9,axis=1)   #行內(nèi)的最大值      
result_max_2 = np.amax(array_9,axis=0)   #列內(nèi)的最大值
print(result_max_1)
print(result_max_2)

>>>[444 333 578 456]
   [578 496]

result_min_1 = np.amin(array_9,axis=1)   #行內(nèi)的最小值      
result_min_2 = np.amin(array_9,axis=0)   #列內(nèi)的最小值
print(result_min_1)
print(result_min_2)

>>>[369   0 496 425]
   [333   0]

result_mean_1 = np.mean(array_9,axis=1)  #行平均值  一個人四級六級平均成績
result_mean_2 = np.mean(array_9,axis=0)  #列平均值  四個人四級、六級分別平均成績
print(result_mean_1)
print(result_mean_2)

>>>[406.5 166.5 537.  440.5]
   [452.75 322.5 ]

result_std_1 = np.std(array_9,axis=1)    #std方差
result_std_2 = np.std(array_9,axis=0)
print(result_std_1)
print(result_std_2)

>>>[ 37.5 166.5  41.   15.5]
   [ 86.76800966 191.55743264]

數(shù)組運算:

print("origin array:" ,array_9)
array_9[:,0] = array_9[:,0]+5      #將所有人第一列四級的成績加五分
print("after the chage:",array_9)

print("origin array:" ,array_9)
array_9[:,1] = array_9[:,1]*0.5      #將所有人第二列六級級的成績減半
print("after the chage:",array_9)

>>>
origin array:    [[444 369]
                  [333   0]
                  [578 496]
                  [456 425]]
after the chage: [[449 369]
                  [338   0]
                  [583 496]
                  [461 425]]
origin array:    [[449 369]
                  [338   0]
                  [583 496]
                  [461 425]]
after the chage: [[449 184]
                  [338   0]
                  [583 248]
                  [461 212]]

矩陣運算:

np.dot()
規(guī)則:(M行, N列) * (N行, Z列) = (M行, Z列)

q = np.array([[0.4], [0.6]])    #array_9四行兩列 * q 二行一列 = 四行一列
result = np.dot(array_9, q)
print(result)

>>>[[399. ]
    [133.2]
    [528.8]
    [437.4]]

矩陣合并:

qaaq = [425,425]
array_10 = np.array(qaaq)
print(array_10)
array_11 = np.vstack((array_9,array_10))  #vstack 垂直拼接  hstack水平拼接
print(array_11)

>>>[[444 369]
    [333   0]
    [578 496]
    [456 425]
    [425 425]]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末庸诱,一起剝皮案震驚了整個濱河市捻浦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌桥爽,老刑警劉巖朱灿,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異聚谁,居然都是意外死亡母剥,警方通過查閱死者的電腦和手機滞诺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門形导,熙熙樓的掌柜王于貴愁眉苦臉地迎上來环疼,“玉大人,你說我怎么就攤上這事朵耕§帕ィ” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵阎曹,是天一觀的道長伪阶。 經(jīng)常有香客問我,道長处嫌,這世上最難降的妖魔是什么栅贴? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮熏迹,結(jié)果婚禮上檐薯,老公的妹妹穿的比我還像新娘。我一直安慰自己注暗,他們只是感情好坛缕,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捆昏,像睡著了一般赚楚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上骗卜,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天宠页,我揣著相機與錄音,去河邊找鬼寇仓。 笑死勇皇,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的焚刺。 我是一名探鬼主播敛摘,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼乳愉!你這毒婦竟也來了兄淫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蔓姚,失蹤者是張志新(化名)和其女友劉穎捕虽,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坡脐,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡泄私,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晌端。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡捅暴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出咧纠,到底是詐尸還是另有隱情蓬痒,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布漆羔,位于F島的核電站梧奢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏演痒。R本人自食惡果不足惜亲轨,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸟顺。 院中可真熱鬧瓶埋,春花似錦、人聲如沸诊沪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽端姚。三九已至晕粪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渐裸,已是汗流浹背巫湘。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留昏鹃,地道東北人尚氛。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像洞渤,于是被迫代替她去往敵國和親阅嘶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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