python-3 numpy

numpy 是python科學(xué)計(jì)算的核心庫业岁,當(dāng)然也涉及pandas和sklearn(基于numpy繼續(xù)二次開發(fā)的包)功能很強(qiáng)大查吊,和matplotlib霹娄、scripy一起相當(dāng)于matlab的作用翎苫。

主要內(nèi)容:

1.數(shù)組的定義和應(yīng)用
2.數(shù)組元素的索引選取
3.數(shù)組的計(jì)算
4.線性代數(shù)的運(yùn)行計(jì)算

1.1 Arrays

*用于存儲同類型的數(shù)據(jù)(int兔院、float、String谆吴。泪电。)
*能夠被非負(fù)整數(shù)進(jìn)行索引,維度的數(shù)量就是array的秩(rank)纪铺。
*可以通過python列表創(chuàng)建array并且通過方括號進(jìn)行索引獲取元素。

import numpy as np
import pandas as pd
a=np.array([1,2,4,6,5])   #創(chuàng)建一維數(shù)組
b=np.array([[1,2,3,4],[5,6,7,8]]) # 創(chuàng)建二維數(shù)組
1.2 創(chuàng)建Array

numpy 提供內(nèi)置函數(shù)創(chuàng)建一些特殊數(shù)據(jù)

np.zeros(3) #創(chuàng)建含有三個(gè)0元素的數(shù)組
array([0., 0., 0.])

np.ones([3,5])
array([[1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.]])

np.zeros_like(b) #構(gòu)建一個(gè)0元素組成的數(shù)組碟渺,結(jié)構(gòu)同b

array([[0, 0, 0, 0],
       [0, 0, 0, 0]])
1.3 數(shù)組常用操作

統(tǒng)計(jì)計(jì)算鲜锚;
排序;
按照大小索引苫拍;
條件查找芜繁;
shape

a=np.random.rand(4) #(0,1)隨機(jī)的一維數(shù)組
a=np.random.rand(2,4) # (0绒极,1)二維四列隨機(jī)的一維數(shù)組

np.sum(a) #所有數(shù)組元素求和

a.size #元素個(gè)數(shù)

np.sum(a,axis=1)  # 求每一行的和  ,axis控制行列
array([2.91248016, 1.91076292])
np.sum(a,axis=0)  #求每一列的和
array([1.09794586, 1.4410147 , 0.92824889, 1.35603364])

a.sum(axis=0) #另一個(gè)每一列求和的方式

np.argmax(a)  # 返回a中最大元素的位置
3

a.argsort()   #返回每一行的排列順序骏令,返回順序索引
array([[1, 2, 0, 3],
       [2, 0, 3, 1]])

np.where(a>0.5) # 返回a中>0.5的元素位置
(array([0, 0, 1, 1, 1, 1, 2, 2, 2]), 
array([1, 2, 0, 1, 2, 3, 0, 1, 2]))

這里是指,0行1列垄提,0行2列榔袋,1行0列…..的位置

np.where(a>0.5,1,0) # a中>5的元素位置,滿足返回1周拐,不滿足返回-1
array([0, 0, 0, 1, 1, 1])
1.4 改變數(shù)組形狀
b.ravel()  # 同faltten,都是將多維數(shù)組降為一維凰兑,flatten返回一份新的數(shù)組妥粟,且對它做修改不會影響原始數(shù)組
array([2, 3, 5, 6, 7, 8])

a.reshape(2,4)  #reshape,重新按照指定結(jié)構(gòu)構(gòu)造數(shù)組(8個(gè)元素,可以重構(gòu)為2維4列)
array([[0.78793172, 0.51796296, 0.66614991, 0.94043558],
       [0.31001414, 0.92305174, 0.26209898, 0.41559806]])

a.reshape(4,-1)  #第二個(gè)參數(shù)位置設(shè)置為-1對時(shí)候吏够,會自動根據(jù)第一參數(shù)(已指定)分配維度勾给。
array([[0.78793172, 0.51796296],
       [0.66614991, 0.94043558],
       [0.31001414, 0.92305174],
       [0.26209898, 0.41559806]])

a.reshape(2,-1)
array([[0.78793172, 0.51796296, 0.66614991, 0.94043558],
       [0.31001414, 0.92305174, 0.26209898, 0.41559806]])
1.5 隨機(jī)數(shù)

常用方法:

rand(a,b...) 返回(0,1)指定維度的隨機(jī)數(shù)
randn(a,b,...) 返回標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù) randint([low,high,size,dtype])
random([size]) 返回(0,1)之間的隨機(jī)數(shù)
sample([size]) 返回(0,1)之間的隨機(jī)數(shù)
choice(a,[size,replace,p]) 從指定元素中選擇,產(chǎn)生size大小的數(shù)組锅知。

np.random.rand(2,10) #
np.random.randint(1,10,5,'int')  # 返回(1,10)的隨機(jī)整數(shù)播急,維度上1維5列  

np.random.randint(1,10,(2,5),'int')  # 返回(1,10)的隨機(jī)整數(shù),維度是2維5列
array([[9, 6, 2, 9, 8],
       [8, 7, 9, 9, 6]])

np.random.choice(100,(3,4))  # 在(0,100)之間隨機(jī)抽取元素售睹,產(chǎn)生一個(gè)3行4列的數(shù)組
array([[29, 72, 32, 11],
       [52, 47, 90,  5],
       [79, 10, 80, 92]])

np.random.choice([22,55,11,33,44],(3,4)) #  從指定元素(11,22,33,44,55)中隨機(jī)抽取桩警,產(chǎn)生一個(gè)3行4列的數(shù)組
1.6 數(shù)組的索引
 a=np.array([[1,2,3,4],[2,3,4,5],[3,4,5,6]]) 
array([[1, 2, 3, 4],
       [2, 3, 4, 5],
       [3, 4, 5, 6]])

a[0:3,0:1]  #0~3行,不包含3侣姆,0~1列生真,不包含1。選擇交叉的位置元素
array([[1],
       [2],
       [3]])

整數(shù)索引

a[[1,2],[0,1]]   #第一行捺宗,第0列:2柱蟀;第2行,第1列: 4
array([2, 4])

布爾型索引

a>1
a[a>2] #返回>2的所有元素
array([3, 4, 3, 4, 5, 3, 4, 5, 6])
a>3 #返回a>3元素的布爾值蚜厉,
array([[False, False, False,  True],
       [False, False,  True,  True],
       [False,  True,  True,  True]])

a[2::2,::2]   # 第一參數(shù)位置:從第二行開始长已,每次間隔步長為2;第二參數(shù)位置:列從第0列開始昼牛,每次間隔步長為2.選擇元素术瓮。
array([[3, 5]])

a[1::2,::1]  # 相當(dāng)于選擇第一行所有元素
array([[2, 3, 4, 5]])

np.random.randint(0,55,[6,6])
array([[29, 53, 53,  5, 42, 22],
       [52, 39, 21, 21,  3, 31],
       [35, 49, 43, 44, 26, 11],
       [43, 31, 54, 50,  5, 22],
       [29, 31, 26, 20, 37,  5],
       [20, 12, 33, 19, 10, 23]])
1.7 數(shù)組數(shù)學(xué)

元素計(jì)算,并不是矩陣計(jì)算

a=np.random.randn(3,4)
a/2
b=np.random.randn(3,4)
a+b

array([[ 1.04139689,  0.58922263, -1.38069406, -0.71404626],
       [ 0.74035989, -0.90304504,  2.44278733,  0.76996179],
       [-1.31952622,  1.01089772, -1.29547704,  1.71909875]])

一些常用計(jì)算:

np.mod(a,b)  a除b求余
np.divide(a,b) 
np.multiply(a,b)
np.subtract(a,b) 

矩陣點(diǎn)乘:np.dot( a,b ) a結(jié)構(gòu)是m * n贰健,b結(jié)構(gòu)是n*q (矩陣的運(yùn)算)

np.dot(b,[1,2,3,4]) 
array([0.10503481, 1.68123209, 4.52536127])

np.dot(b,a.T) 
array([[ 0.68075312,  0.26218424,  0.84420365],
       [-1.01875496, -0.22033819, -0.54689438],
       [ 0.29243031,  2.84468729,  1.5676395 ]])
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胞四,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子伶椿,更是在濱河造成了極大的恐慌辜伟,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脊另,死亡現(xiàn)場離奇詭異导狡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)偎痛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門旱捧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人踩麦,你說我怎么就攤上這事枚赡∶グ” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵标锄,是天一觀的道長顽铸。 經(jīng)常有香客問我,道長料皇,這世上最難降的妖魔是什么谓松? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮践剂,結(jié)果婚禮上鬼譬,老公的妹妹穿的比我還像新娘。我一直安慰自己逊脯,他們只是感情好优质,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著军洼,像睡著了一般巩螃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上匕争,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天避乏,我揣著相機(jī)與錄音,去河邊找鬼甘桑。 笑死拍皮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的跑杭。 我是一名探鬼主播铆帽,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼德谅!你這毒婦竟也來了爹橱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤窄做,失蹤者是張志新(化名)和其女友劉穎宅荤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浸策,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年惹盼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了庸汗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡手报,死狀恐怖蚯舱,靈堂內(nèi)的尸體忽然破棺而出改化,到底是詐尸還是另有隱情,我是刑警寧澤枉昏,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布陈肛,位于F島的核電站,受9級特大地震影響兄裂,放射性物質(zhì)發(fā)生泄漏句旱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一晰奖、第九天 我趴在偏房一處隱蔽的房頂上張望谈撒。 院中可真熱鬧,春花似錦匾南、人聲如沸啃匿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽溯乒。三九已至,卻和暖如春豹爹,著一層夾襖步出監(jiān)牢的瞬間裆悄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工帅戒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灯帮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓逻住,卻偏偏與公主長得像钟哥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子瞎访,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359