Numpy入門

Numpy的引用

import numpy as np

Numpy的數(shù)組對象——ndarray

ndarray是一個多維數(shù)組的對象萨醒,由兩部分構(gòu)成:

  • 實際的數(shù)據(jù)
  • 描述這些數(shù)據(jù)的元數(shù)據(jù)(數(shù)據(jù)維度苟呐、數(shù)據(jù)類型等)

ndarray數(shù)據(jù)一般要求所有元素類型相同屎鳍,數(shù)組下標(biāo)從0開始虫给。
ndarray數(shù)組可以由非同質(zhì)對象構(gòu)成坊夫,非同質(zhì)ndarray元素為對象類型搬葬。非同質(zhì)ndarray對象無法發(fā)揮Numpy的優(yōu)勢,盡量避免使用绍移。
例如:

x = np.array([ [0, 1, 2, 3, 4], [9, 8, 7, 6] ])

此時x由非同質(zhì)對象構(gòu)成悄窃,x為對象類型。

nd.array()生成一個ndarray數(shù)組蹂窖,參數(shù)是列表類型轧抗。如果想生成一個n維數(shù)組,參數(shù)就是n個列表瞬测。
打印ndarray數(shù)組横媚,輸出為列表形式,空格分隔月趟。

ndarray的元素類型

數(shù)據(jù)類型 說明
bool 布爾類型灯蝴,True或False
intc 與C語言中的int類型一致,一般是int32或int64
intp 用于索引的整數(shù)孝宗,與C語言中ssize_t一致绽乔,int32或int64
int8 字節(jié)長度的整數(shù),取值:[‐128, 127]
int16 16位長度的整數(shù)碳褒,取值:[‐32768, 32767]
int32 32位長度的整數(shù)折砸,取值:[‐2^32, 231‐1]
int64 64位長度的整數(shù),取值:[‐2^63, 2^63‐1]
uint8 8位無符號整數(shù)沙峻,取值:[0, 255]
uint16 16位無符號整數(shù)睦授,取值:[0, 65535]
uint32 32位無符號整數(shù),取值:[0, 2^32‐1]
uint64 64位無符號整數(shù)摔寨,取值:[0, 2^64‐1]
float16 16位半精度浮點數(shù):1位符號位去枷,5位指數(shù),10位尾數(shù)
float32 32位半精度浮點數(shù):1位符號位是复,8位指數(shù)删顶,23位尾數(shù)
float64 64位半精度浮點數(shù):1位符號位,11位指數(shù)淑廊,52位尾數(shù)
complex64 復(fù)數(shù)類型逗余,實部和虛部都是32位浮點數(shù)
complex128 復(fù)數(shù)類型,實部和虛部都是64位浮點數(shù)

ndarray對象的屬性

屬性 說明
.ndim 秩季惩,即軸的數(shù)量或維度的數(shù)量
.shape ndarray對象的尺度录粱,對于矩陣,n行m列
.size ndarray對象元素的個數(shù)画拾,相當(dāng)于.shape中n*m的值
.dtype ndarray對象的元素類型
.itemsize ndarray對象中每個元素的大小啥繁,以字節(jié)為單位

ndarray數(shù)組的創(chuàng)建方法

1. 從Python中的列表、元組等類型創(chuàng)建ndarray數(shù)組

x = np.array(list/tuple)
x = np.array(list/tuple, dtype=np.float32)

當(dāng)np.array()不指定dtype時青抛,NumPy將根據(jù)數(shù)據(jù)情況關(guān)聯(lián)一個dtype類型

2. 使用NumPy中函數(shù)創(chuàng)建ndarray數(shù)組旗闽,如:arange, ones, zeros等

函數(shù) 說明
np.arange(n) 類似range()函數(shù),返回ndarray類型蜜另,元素從0到n‐1
np.ones(shape) 根據(jù)shape生成一個全1數(shù)組适室,shape是元組類型
np.zeros(shape) 根據(jù)shape生成一個全0數(shù)組,shape是元組類型
np.full(shape,val) 根據(jù)shape生成一個數(shù)組蚕钦,每個元素值都是val
np.eye(n) 創(chuàng)建一個正方的n*n單位矩陣亭病,對角線為1,其余為0
np.ones_like(a) 根據(jù)數(shù)組a的形狀生成一個全1數(shù)組
np.zeros_like(a) 根據(jù)數(shù)組a的形狀生成一個全0數(shù)組
np.full_like(a,val) 根據(jù)數(shù)組a的形狀生成一個數(shù)組嘶居,每個元素值都是val
np.linspace(start, end, num, endpoint=true/false) 從start開始到end結(jié)束罪帖,生成num個數(shù),endpoint為true則包含end
np.concatenate( (array1, array2) ) 將兩個或多個數(shù)組合并成一個新的數(shù)組

ndarray數(shù)組的變換

1. ndarray數(shù)組的維度變換

方法 說明
.reshape(shape) 不改變數(shù)組元素邮屁,返回一個shape形狀的數(shù)組整袁,原數(shù)組不變
.resize(shape) 與.reshape()功能一致,但修改原數(shù)組
.swapaxes(ax1,ax2) 將數(shù)組n個維度中兩個維度進(jìn)行調(diào)換
.flatten() 對數(shù)組進(jìn)行降維佑吝,返回折疊后的一維數(shù)組坐昙,原數(shù)組不變

例:

a.reshape( (3, 8) )
a.resize( (3, 8) )

2. ndarray數(shù)組的類型變換

new_a = a.astype(new_type)

astype()方法一定會創(chuàng)建新的數(shù)組(原始數(shù)據(jù)的一個拷貝),即使兩個類型一致

3. ndarray數(shù)組向列表的轉(zhuǎn)換

ls = a.tolist()

ndarray數(shù)組的操作

索引:獲取數(shù)組中特定位置元素的過程
切片:獲取數(shù)組元素子集的過程

一維數(shù)組的索引和切片:與Python的列表類似

a[2]
a[ 1 : 4 : 2 ]

起始編號: 終止編號(不含): 步長芋忿,3元素冒號分割
編號0開始從左遞增炸客,或‐1開始從右遞減

多維數(shù)組的索引

a[ -1, -2, -3 ]

每個維度一個索引值疾棵,逗號分割

多維數(shù)組的切片

a[ :, 1, -3 ] #選取一個維度
a[ :, 1:3, : ] #選取兩個維度
a[ :, :, ::2 ] #每個維度可以使用步長跳躍切片

ndarray數(shù)組的運(yùn)算

1. 數(shù)組與標(biāo)量之間的運(yùn)算

數(shù)組與標(biāo)量之間的運(yùn)算作用于數(shù)組的每一個元素

2. NumPy一元函數(shù)

函數(shù) 說明
np.abs(x) np.fabs(x) 計算數(shù)組各元素的絕對值
np.sqrt(x) 計算數(shù)組各元素的平方根
np.square(x) 計算數(shù)組各元素的平方
np.log(x) np.log10(x) np.log2(x) 計算數(shù)組各元素的自然對數(shù)、10底對數(shù)和2底對數(shù)
np.ceil(x) np.floor(x) 計算數(shù)組各元素的ceiling值或floor值
np.rint(x) 計算數(shù)組各元素的四舍五入值
np.modf(x) 將數(shù)組各元素的小數(shù)和整數(shù)部分以兩個獨立數(shù)組形式返回
np.cos(x) np.cosh(x) np.sin(x) np.sinh(x) np.tan(x) np.tanh(x) 計算數(shù)組各元素的普通型和雙曲型三角函數(shù)
np.exp(x) 計算數(shù)組各元素的指數(shù)值
np.sign(x) 計算數(shù)組各元素的符號值痹仙,1(+), 0, ‐1(‐)

3. NumPy二元函數(shù)

函數(shù) 說明
+ ‐ * / ** 兩個數(shù)組各元素進(jìn)行對應(yīng)運(yùn)算
np.maximum(x,y) np.fmax() np.minimum(x,y) np.fmin() 元素級的最大值/最小值計算
np.mod(x,y) 元素級的模運(yùn)算
np.copysign(x,y) 將數(shù)組y中各元素值的符號賦值給數(shù)組x對應(yīng)元素
> < >= <= == != 算術(shù)比較是尔,產(chǎn)生布爾型數(shù)組

Reference:
中國大學(xué)MOOC北京理工大學(xué)Python數(shù)據(jù)分析與展示課程嵩天老師課件
課程主頁

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市开仰,隨后出現(xiàn)的幾起案子拟枚,更是在濱河造成了極大的恐慌,老刑警劉巖众弓,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恩溅,死亡現(xiàn)場離奇詭異,居然都是意外死亡谓娃,警方通過查閱死者的電腦和手機(jī)脚乡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來傻粘,“玉大人每窖,你說我怎么就攤上這事∠蚁ぃ” “怎么了窒典?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長稽莉。 經(jīng)常有香客問我瀑志,道長,這世上最難降的妖魔是什么污秆? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任劈猪,我火速辦了婚禮,結(jié)果婚禮上良拼,老公的妹妹穿的比我還像新娘战得。我一直安慰自己,他們只是感情好庸推,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布常侦。 她就那樣靜靜地躺著,像睡著了一般贬媒。 火紅的嫁衣襯著肌膚如雪聋亡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天际乘,我揣著相機(jī)與錄音坡倔,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛罪塔,可吹牛的內(nèi)容都是我干的投蝉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼征堪,長吁一口氣:“原來是場噩夢啊……” “哼墓拜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起请契,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎夏醉,沒想到半個月后爽锥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡畔柔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年氯夷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片靶擦。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡腮考,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玄捕,到底是詐尸還是另有隱情踩蔚,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布枚粘,位于F島的核電站馅闽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏馍迄。R本人自食惡果不足惜福也,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望攀圈。 院中可真熱鬧暴凑,春花似錦、人聲如沸赘来。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撕捍。三九已至拿穴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間忧风,已是汗流浹背默色。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腿宰。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓呕诉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吃度。 傳聞我的和親對象是個殘疾皇子甩挫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

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