《用Python玩轉(zhuǎn)數(shù)據(jù)》-04 Python擴(kuò)展庫

4.4 擴(kuò)展庫Scipy

  • Numpy
  • Matplotlib
  • Panadas

Numpy

Numpy主要實(shí)現(xiàn)的是數(shù)據(jù)結(jié)構(gòu)瑞筐,比如線性矩陣

Numpy介紹
import numpy as np
a = np.ones((3,4))
print(a)

Scipy核心庫

簡單來說科學(xué)計(jì)算主要集中在里頭啦


Scipy核心庫

Matplotlib

方便作圖凄鼻,曲線直方圖等等


Matplotlib

Pandas

核心在于高效的Series和DataFrame數(shù)據(jù)結(jié)構(gòu)

Pandas

4.5 ndarray

基本分類

  • Python中的列表(list、tuple)元素可以是任何類型聚假,所以保存的是指向元素的指針

  • array模塊
    通過array函數(shù)來創(chuàng)建數(shù)組块蚌,array.array("B", range(5)),不支持多維數(shù)組,數(shù)組方法也不盡夠用

  • ndarray
    NumPy中的基本數(shù)據(jù)結(jié)構(gòu)膘格,別名array峭范,結(jié)構(gòu)如下

ndarray基本結(jié)構(gòu)

基本屬性有:

  • ndarray.ndim(秩)
  • ndarray.shape(維度)
  • ndarray.size(元素個(gè)數(shù))
  • ndarray.type(元素類型)
  • ndarray.itemsize(元素大小)

ndarray的創(chuàng)建

  • array()
    參數(shù)為序列
np.array([1,2,3])
np.array([(1,2,3),(4,5,6)])
  • arange()
    和range類似瘪贱,但此處可以處理浮點(diǎn)數(shù)
np.arange(1,5, 0.5)
  • random()
np.random.random(2,2)
  • linspace()
np.linspace(1, 2, 10, endpoint = False)
  • ones()纱控、zeros()
  • fromfunction()
np.fromfunction(lambda i, j: (i+1)*(j+1), (9,9))

ndarray的操作

  • 切片


    ndarray切片
  • arrray.reshape()
    改變原有形狀,更像矩陣?yán)锩娴霓D(zhuǎn)秩

ndarray的運(yùn)算

常用的加減乘除皆可使用菜秦,形狀不同也可適應(yīng)甜害,源于廣播的理念
NumPy中較小的數(shù)組會(huì)廣播到較大數(shù)組的大小,使它們的形狀兼容喷户,其中較小數(shù)組維度的長度為1唾那,例如:

a = np.array([1, 2, 3])
b = np.array([[4, 5, 6], [7, 8, 9]])
#將數(shù)組a按數(shù)組b擴(kuò)展成了維度為(2, 3)的數(shù)組,第1行新值與第0行一樣為“[1, 2, 3]”
  • sum()、min()闹获、max()可再numpy運(yùn)算函數(shù)方法
aArray = np.array([(1,2,3), (4,5,6)])

aArray.sum()
Out[25]: 21

aArray.sum(axis = 0)
Out[26]: array([5, 7, 9])

aArray.sum(axis = 1)
Out[27]: array([ 6, 15])

aArray.min()
Out[28]: 1

aArray.max()
Out[29]: 6

4.6變長字典Series

  • 類似一維數(shù)組對象
  • 由數(shù)據(jù)和索引組成
from pandas import Series
aSer = pd.Series([1,2,3,'a'],index = [1,2,3])

aSer.index
Out[16]: Index(['a', 'b', 'c', 'd'], dtype='object')

aSer.values
Out[17]: array([1, 2, 3, 'a'], dtype=object)

基本操作

  • 基本加減乘除以及乘方等
  • 數(shù)據(jù)對齊
#eg1
data = {'AXP':'86.40', 'CSCO':'112.64', 'BA':'99.44'}
sindex = ['AXP','CSCO','AAPL','BA']
aSer = pd.Series(data, index = sindex)
aSer
Out[26]: 
AXP      86.40
CSCO    112.64
AAPL       NaN
BA       99.44
dtype: object

#eg2
bSer = {'AXP':'86.40', 'CSCO':'112.64', 'CVX':'23.78'}
cSer = pd.Series(bSer)
aSer + cSer
Out[29]: 
AAPL             NaN
AXP       86.4086.40
BA               NaN
CSCO    112.64112.64
CVX              NaN
dtype: object
  • name屬性
aSer.name = 'SeriesTest'
aSer.index.name = 'Volume'
aSer
Out[32]: 
Volume
AXP      86.40
CSCO    112.64
AAPL       NaN
BA       99.44
Name: SeriesTest, dtype: object

4.7 DataFrame

相較于series的一維結(jié)構(gòu)期犬,DataFrame是一個(gè)二維表格型數(shù)據(jù)結(jié)構(gòu)可以看做是**共享同一個(gè)index的Series集合

data = {'name':['Wangdachui', 'Linling', 'Niuyun'], 'sallery':[4000, 5000, 6000]}
frame = pd.DataFrame(data)
print(frame)
Out[35]: 
         name  sallery
0  Wangdachui     4000
1     Linling     5000
2      Niuyun     6000

基本操作

  • 獲取DataFrame對象的列和行可獲得Series(即可對數(shù)據(jù)進(jìn)行列分析)
frame['name']
frame['sallery']
  • DataFrame對象的修改和刪除
frame['name'] = 'Admin'
frame
Out[40]: 
    name  sallery
1  Admin     4000
2  Admin     5000
3  Admin     6000

del frame['name']
frame
Out[42]: 
   sallery
1     4000
2     5000
3     6000
  • 對index.name 進(jìn)行設(shè)置
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市避诽,隨后出現(xiàn)的幾起案子龟虎,更是在濱河造成了極大的恐慌,老刑警劉巖沙庐,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲤妥,死亡現(xiàn)場離奇詭異,居然都是意外死亡拱雏,警方通過查閱死者的電腦和手機(jī)医男,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門睹簇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事榜晦〉统祝” “怎么了硼端?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵州丹,是天一觀的道長。 經(jīng)常有香客問我刁憋,道長滥嘴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任至耻,我火速辦了婚禮若皱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘有梆。我一直安慰自己是尖,他們只是感情好意系,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布泥耀。 她就那樣靜靜地躺著,像睡著了一般蛔添。 火紅的嫁衣襯著肌膚如雪痰催。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天迎瞧,我揣著相機(jī)與錄音夸溶,去河邊找鬼。 笑死凶硅,一個(gè)胖子當(dāng)著我的面吹牛缝裁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播足绅,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼捷绑,長吁一口氣:“原來是場噩夢啊……” “哼韩脑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起粹污,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤段多,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后壮吩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體进苍,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年鸭叙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了觉啊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沈贝,死狀恐怖柄延,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缀程,我是刑警寧澤搜吧,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站杨凑,受9級(jí)特大地震影響滤奈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撩满,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一蜒程、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伺帘,春花似錦昭躺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至张咳,卻和暖如春帝洪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脚猾。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工葱峡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人龙助。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓砰奕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子军援,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

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

  • 來源:NumPy Tutorial - TutorialsPoint 譯者:飛龍 協(xié)議:CC BY-NC-SA 4...
    布客飛龍閱讀 32,811評(píng)論 6 97
  • 基礎(chǔ)篇NumPy的主要對象是同種元素的多維數(shù)組常空。這是一個(gè)所有的元素都是一種類型、通過一個(gè)正整數(shù)元組索引的元素表格(...
    oyan99閱讀 5,130評(píng)論 0 18
  • 先決條件 在閱讀這個(gè)教程之前盖溺,你多少需要知道點(diǎn)python漓糙。如果你想從新回憶下,請看看Python Tutoria...
    舒map閱讀 2,580評(píng)論 1 13
  • NumPy是Python中關(guān)于科學(xué)計(jì)算的一個(gè)類庫烘嘱,在這里簡單介紹一下昆禽。 來源:https://docs.scipy...
    灰太狼_black閱讀 1,228評(píng)論 0 5
  • 原文:Quickstart tutorial 譯者:Reverland 來源:試驗(yàn)性NumPy教程(譯) 2.1 ...
    布客飛龍閱讀 1,350評(píng)論 5 52