Numpy基礎(chǔ)

什么是numpy?

??Numpy是Numerical Python 的簡稱,它是python數(shù)值計算中最為重要的基礎(chǔ)包.大多數(shù)計算包都提供了基于NumPy的科學(xué)函數(shù)功能,將NumPy的數(shù)組對象作為數(shù)據(jù)交換的通用語.

為什么要用Numpy

??Numpy提供了一個非常易用的API,將數(shù)據(jù)傳給底層語言編寫的外部類庫,再由外部類庫將計算結(jié)果按照Numpy數(shù)組的方式返回,變得非常簡單.Numpy本身不提供建模和科學(xué)函數(shù),理解Numpy的數(shù)組以及基于數(shù)組的計算將幫助你更高效的使用基于數(shù)組的工具,比如Pandas.
在Numpy中:

  • ndarry,一種高效多維數(shù)組,提供了基于數(shù)組的便捷算術(shù)操作以及靈活的廣播功能.
  • 對所有數(shù)據(jù)進(jìn)行快速矩陣計算,而無須編寫循環(huán)程序
  • 對硬盤中數(shù)組數(shù)據(jù)進(jìn)行讀寫的工具,并對內(nèi)存映射文件進(jìn)行操作.
  • 線性代數(shù),隨機(jī)數(shù)生成以及傅里葉變換功能.
  • 用于連接NumPy到c,c++和FORTRAN語言類庫的C語言API

怎么用Numpy

Numpy主要用于數(shù)據(jù)分析:

  • 在數(shù)據(jù)清理,清洗,構(gòu)造子集,過濾,變換以及其他計算中進(jìn)行快速的向量計算.
  • 常見的數(shù)組計算,比sort,unique以及set操作.
  • 高效的描述性統(tǒng)計和聚合/概述數(shù)據(jù).
  • 數(shù)據(jù)排列和相關(guān)數(shù)據(jù)操作,例如對異構(gòu)數(shù)據(jù)進(jìn)行merge 和 join.
  • 使用數(shù)組表達(dá)式來表明條件邏輯,代替if-elif-else條件分支的循環(huán).
  • 分組數(shù)據(jù)操作

Numpy的數(shù)據(jù)分析如此重要,其中一個原因就是它對處理大量數(shù)組的數(shù)據(jù)非常有效:

  • Numpy在內(nèi)部將數(shù)據(jù)儲存在連續(xù)的內(nèi)存塊上,這與其他的Python內(nèi)建數(shù)據(jù)結(jié)構(gòu)是不同的.Numpy的算法庫是用C語言寫的,所以在操作數(shù)據(jù)內(nèi)存時,不需要任何類型的檢查或者其他管理操作.Numpy數(shù)組使用的內(nèi)存量也小于其他的Python內(nèi)建序列.
  • Numpy可以針對全量數(shù)組進(jìn)行復(fù)雜計算而不用寫Python循環(huán)

Numpy ndarray:多維數(shù)組對象

??Numpy的核心特征之一就是多維數(shù)組對象----ndarray.ndarray是Python中一個快速,靈活的大型數(shù)據(jù)集容器.數(shù)組允許使用類似于標(biāo)量的操作語法在整塊數(shù)據(jù)上進(jìn)行數(shù)學(xué)計算.

import numpy as np 
data = np.random.randn(2,3)
print(data)
#[[-1.48808504 -0.12575993 -2.61587575]
# [ 0.18325062  1.95968089 -0.68765384]]

??在python中,需要用Numpy的話,需要用標(biāo)準(zhǔn)導(dǎo)入式導(dǎo)入import numpy as np在Numpy這個包中包含了大量與python內(nèi)建函數(shù)重命名的函數(shù).
??一個ndarray是一個通用的多維同類數(shù)據(jù)容器,其內(nèi)部的每一個元素都是相同類型的.每一個數(shù)組都有一個shape屬性,用來描述ndarray的結(jié)構(gòu).每一個數(shù)組都有一個dtype屬性,用來描述數(shù)組的數(shù)據(jù)類型.

data.shape
#(2,3)#(行,列)
data.dtype
#dtype('float64')

ndarray = Numpy數(shù)組 = 數(shù)組

如何生成一個ndarray

??在生成一個數(shù)組的方法中最簡單的是array函數(shù),array函數(shù)接收任意的序列型對象,生成一個新的包含傳遞數(shù)據(jù)的Numpy數(shù)組.

data1 = [6,7.5,8,0,1]
arr1 = np.array(data1)
#array([6.,7,5,8.,0,1.])

在列表中輸入的有整型和浮點(diǎn)型,生成ndarray時整型升級成浮點(diǎn)型,

data2 = [[1,2,3,4],[5,6,7,8]]
arr2 = np.array(data2)
#array([[1,2,3,4],
 #           [5,6,7,8]])

??除了用np.array還有其他函數(shù)可以創(chuàng)建新數(shù)組.例如zeros可以一次性創(chuàng)造全0數(shù)組,ones可以一次性創(chuàng)造全1數(shù)組.empty則可以創(chuàng)建一個沒有初始化數(shù)值的數(shù)組.想要創(chuàng)建高維數(shù)組,則需要為shape傳遞一個元組.

np.zeros(3)
#array([0.,0.,0.])
np.zeros((2,3))
#array([[0.,0.,0.],
#          [0.,0.,0.]]) 

arange是Python內(nèi)建函數(shù)range的數(shù)字版,返回一個數(shù)組

np.arange(3)
#array([0,1,2])

Numpy數(shù)據(jù)類型

??數(shù)據(jù)類型,即dytpe,是一個特殊的對象,是ndarray的元數(shù)據(jù),即:表示數(shù)據(jù)的數(shù)據(jù).

arr1 = np.array([1,2,3],dtype = np.float64)
arr2 = np.array([1,2,3],dtype = np.int32)

??在Numpy中的數(shù)據(jù)類型與python中相同,比如int,float,str,'bool',在數(shù)據(jù)分析中只需要記住這幾類就行,但是在需要內(nèi)存或硬盤是做更深入的存取操作時,尤其是大數(shù)據(jù)集時,才需要記住數(shù)據(jù)類型.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子稠项,更是在濱河造成了極大的恐慌,老刑警劉巖蜡秽,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡勇边,警方通過查閱死者的電腦和手機(jī)褂策,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門横腿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人斤寂,你說我怎么就攤上這事耿焊。” “怎么了遍搞?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵罗侯,是天一觀的道長。 經(jīng)常有香客問我溪猿,道長钩杰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任诊县,我火速辦了婚禮榜苫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘翎冲。我一直安慰自己垂睬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著驹饺,像睡著了一般钳枕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赏壹,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天鱼炒,我揣著相機(jī)與錄音,去河邊找鬼蝌借。 笑死昔瞧,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的菩佑。 我是一名探鬼主播自晰,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼稍坯!你這毒婦竟也來了酬荞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瞧哟,失蹤者是張志新(化名)和其女友劉穎混巧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勤揩,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咧党,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了陨亡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片傍衡。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖数苫,靈堂內(nèi)的尸體忽然破棺而出聪舒,到底是詐尸還是另有隱情辨液,我是刑警寧澤虐急,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站滔迈,受9級特大地震影響止吁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜燎悍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一敬惦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谈山,春花似錦俄删、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽臊诊。三九已至,卻和暖如春斜脂,著一層夾襖步出監(jiān)牢的瞬間抓艳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工帚戳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玷或,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓片任,卻偏偏與公主長得像偏友,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蚂踊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

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