国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【數(shù)據(jù)科學(xué)系統(tǒng)學(xué)習(xí)】Python # 數(shù)據(jù)分析基本操作[一] numpy

wushuiyong / 1391人閱讀

摘要:提供了使我們能夠快速便捷地處理結(jié)構(gòu)化數(shù)據(jù)的大量數(shù)據(jù)結(jié)構(gòu)和函數(shù)。結(jié)構(gòu)化數(shù)據(jù),例如多維數(shù)據(jù)矩陣表格行數(shù)據(jù),其中各列可能是不同的類型字符串?dāng)?shù)值日期等。基礎(chǔ)數(shù)組和矢量計(jì)算高性能科學(xué)計(jì)算和數(shù)據(jù)分析的基礎(chǔ)包。

本篇內(nèi)容為整理《利用Python進(jìn)行數(shù)據(jù)分析》,博主使用代碼為 Python3,部分內(nèi)容和書本有出入。


利用 Python 進(jìn)行科學(xué)計(jì)算的實(shí)用指南。本書重點(diǎn)介紹了用于高效解決各種數(shù)據(jù)分析問題的 Python 語言和庫,沒有闡述如何利用 Python 實(shí)現(xiàn)具體的分析方法。
重要的Python庫

NumPy
NumPy (Numerical Python)是 Python 科學(xué)計(jì)算的基礎(chǔ)包。


pandas
pandas 提供了使我們能夠快速便捷地處理結(jié)構(gòu)化數(shù)據(jù)的大量數(shù)據(jù)結(jié)構(gòu)和函數(shù)。

結(jié)構(gòu)化數(shù)據(jù) (structured data),例如:

    · 多維數(shù)據(jù)(矩陣)
    · 表格行數(shù)據(jù),其中各列可能是不同的類型(字符串、數(shù)值、日期等)。
    · 通過關(guān)鍵列相互聯(lián)系的多個(gè)表(關(guān)鍵列:對(duì)于 SQL 用戶而言,即主鍵和外鍵)。
    · 間隔平均或不平均的時(shí)間序列。

matplotlib
matplotlib 是最流行的用于繪制數(shù)據(jù)圖表的 Python 庫。


SciPy
SciPy 是一組專門解決科學(xué)計(jì)算中各種標(biāo)準(zhǔn)問題域的包的集合。

Numpy基礎(chǔ):數(shù)組和矢量計(jì)算

NUmPy (Numerical Python)——高性能科學(xué)計(jì)算和數(shù)據(jù)分析的基礎(chǔ)包。


NumPy 的 ndarray:一種多維數(shù)組對(duì)象

你可以用這種數(shù)組對(duì)整塊數(shù)據(jù)執(zhí)行一些數(shù)學(xué)運(yùn)算,其語法跟標(biāo)量元素之間的運(yùn)算一樣。創(chuàng)建并操作多維數(shù)組:


ndarray對(duì)象中所有元素必須是相同類型的,每個(gè)數(shù)組都有一個(gè)shapedtype

shape :表示各維度大小的元組

dtype :說明數(shù)組數(shù)據(jù)類型的對(duì)象


創(chuàng)建 ndarray

創(chuàng)建數(shù)組最簡單的辦法就是使用 array 函數(shù),它接受一切序列型對(duì)象(包括其它數(shù)組),然后產(chǎn)生一個(gè)新的NumPy數(shù)組(含有原來的數(shù)據(jù))。

np.array會(huì)嘗試為新建的這個(gè)數(shù)組推斷出一個(gè)較為合適的數(shù)據(jù)類型,這個(gè)數(shù)據(jù)類型保存在一個(gè)特殊的dtype對(duì)象中。

zerosones 也分別可以創(chuàng)建指定大小的全 0 或全 1 數(shù)組,empty 可以創(chuàng)建一個(gè)沒有任何具體值的數(shù)組(它返回的都是一些未初始化的垃圾值):

arange是 Python 內(nèi)置函數(shù)range的數(shù)組版,np.arange返回間隔均勻的一些值。

ndarray 的數(shù)據(jù)類型

dtype(數(shù)據(jù)類型)是一個(gè)特殊的對(duì)象,它含有 ndarray 將一塊內(nèi)存解釋為特定數(shù)據(jù)類型所需的信息。

需要知道你所處理的數(shù)據(jù)的大致類型是浮點(diǎn)數(shù)復(fù)數(shù)整數(shù)布爾值字符串,還是普通的 python 對(duì)象。當(dāng)你需要控制數(shù)據(jù)在內(nèi)存和磁盤中的存儲(chǔ)方式時(shí),就得了解如何控制存儲(chǔ)類型。


可通過ndarrayastype方法顯示地轉(zhuǎn)換其dtype

若將浮點(diǎn)數(shù)轉(zhuǎn)換成整數(shù),則小數(shù)部分將會(huì)被截?cái)唷?/p>

若某字符串?dāng)?shù)組表示的全是數(shù)字,可用astype將其轉(zhuǎn)換為數(shù)值形式:

這里沒寫 np.float64 只寫了 float,但是NumPy會(huì)將 Python 類型映射到等價(jià)的dtype上。


數(shù)組的dtype的另一個(gè)用法:

int_array變成了和calibers一樣的浮點(diǎn)型數(shù)組


用簡潔類型的代碼表示dtype

u4(unit32):無符號(hào)的 32 位(4個(gè)字節(jié))整型。


調(diào)用astype無論如何都會(huì)創(chuàng)建出一個(gè)新的數(shù)組(原始數(shù)據(jù)的一份拷貝)。

浮點(diǎn)數(shù)只能表示近似的分?jǐn)?shù)值,在復(fù)雜計(jì)算中可能會(huì)積累一些浮點(diǎn)錯(cuò)誤,因此比較操作只在一定小數(shù)位以內(nèi)有效。

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

數(shù)組:可對(duì)數(shù)據(jù)執(zhí)行批量運(yùn)算(不用編寫循環(huán)即可)。這通常叫做矢量化(vectorization)。

大小相等的數(shù)組之間,它們之間任何的算術(shù)運(yùn)算都會(huì)應(yīng)用到元素級(jí)(每個(gè)元素都做這個(gè)運(yùn)算了),數(shù)組與標(biāo)量的算術(shù)運(yùn)算也是。

不同大小的數(shù)組之間的運(yùn)算叫做廣播(broadcasting)

基本的索引和切片

數(shù)據(jù)不會(huì)被復(fù)制,任何修改都直接改了原數(shù)組。

如果僅是要一份副本,則用 .copy()


對(duì)二維數(shù)組單個(gè)元素的索引:

這兩種方式等價(jià)。

arr2d[2],則輸出的是一維數(shù)組[7,8,9]。


2*2*3的數(shù)組(2組2行3列):

切片索引

布爾型索引

需要先引入:

from numpy.random import randn

或?qū)⒋a改成

data = np.random.randn(7, 4)


布爾型數(shù)組的長度必須跟被索引的軸長度一致。每個(gè)名字對(duì)應(yīng) data 數(shù)組一行。


對(duì)條件進(jìn)行否定的兩種方式:


組合應(yīng)用多個(gè)布爾條件,可使用&|等布爾算術(shù)運(yùn)算符:

通過布爾型索引選取數(shù)組中的數(shù)組,將總是創(chuàng)建數(shù)據(jù)的副本,即使返回一模一樣的數(shù)組也是一樣。


通過布爾型數(shù)組設(shè)置值:

通過一維布爾數(shù)組設(shè)置整行或列的值:

花式索引(Fancy indexing)

指利用整數(shù)數(shù)組進(jìn)行索引。

np.empty((8,4))
Return a new array of given shape and type, without initializing entries.


for i in range(8):
    arr[i] = i 

Return an object that produces a sequence of integers from start (inclusive)
to stop (exclusive) by step.


為了以特定順序選取行的子集,只需傳入一個(gè)用于指定順序的整數(shù)列表或 ndarray,使用負(fù)數(shù)索引會(huì)從末尾開始選取行(最后一行是 -1)。


一次傳入多個(gè)索引組,返回一個(gè)一維數(shù)組:


取整列的兩種方法,相當(dāng)于給列排了順序:

花式索引跟切片不一樣,總是將數(shù)據(jù)復(fù)制到新數(shù)組中。

數(shù)組轉(zhuǎn)置和軸對(duì)換

轉(zhuǎn)置返回的是源數(shù)據(jù)的視圖,不進(jìn)行任何復(fù)制操作。數(shù)組有 transpose 方法,還有一個(gè) T 屬性來完成轉(zhuǎn)置:

高維數(shù)組
Transpose 要一個(gè)軸編號(hào):

arr是 2 組 2 行 4 列的數(shù)組,transpose的參數(shù)表示shape的形狀,對(duì)于這個(gè)例子來說,即2[0]2[1]4[2]transpose(1,0,2)轉(zhuǎn)置后變?yōu)?b>2[1]、2[0]4[2],看起來仍是 2 組 2 行 4 列的形狀,但數(shù)組內(nèi)的元素經(jīng)過轉(zhuǎn)換后索引已經(jīng)改變,也要遵循(1,0,2)的順序。如轉(zhuǎn)置前的數(shù)組arr[0,1,0]索引值為 4,轉(zhuǎn)置后的數(shù)組arr"[1,0,0],索引值才為 4。其它同理。


ndarrayswapaxes 方法接受一對(duì)軸編號(hào)且返回源數(shù)據(jù)的視圖:

轉(zhuǎn)置后的數(shù)組arr.T為 4[2] 組 2[1] 行 2[0] 列數(shù)組,swapaxes(1,2)就是將第二個(gè)維度(中括號(hào)內(nèi)數(shù)字)和第三個(gè)維度交換,即轉(zhuǎn)換為 2 組 4 行 2 列。

通用函數(shù):快速的元素級(jí)數(shù)組函數(shù)

通用函數(shù)(即 ufunc)是一種對(duì)ndarray中的數(shù)據(jù)執(zhí)行元素級(jí)運(yùn)算的函數(shù),就是一些簡單函數(shù)。

利用數(shù)組進(jìn)行數(shù)據(jù)處理

用數(shù)組表達(dá)式代替循環(huán)的做法,通常被稱為矢量化。NumPy 數(shù)組將多種數(shù)據(jù)處理任務(wù)表述為數(shù)組表達(dá)式。

np.meshgrid函數(shù)接受兩個(gè)一維數(shù)組,并產(chǎn)生兩個(gè)二維矩陣(對(duì)應(yīng)于兩個(gè)數(shù)組中所有的(x, y)對(duì)。

將條件邏輯表述為數(shù)組運(yùn)算

np.wherea函數(shù)是三元表達(dá)式x if condition else y的矢量化版本。

np.where的第二個(gè)和第三個(gè)參數(shù)不必是數(shù)組,傳遞給where的數(shù)組大小可以不相等,甚至可以是標(biāo)量值。在數(shù)據(jù)分析工作中,where通常用于根據(jù)另一個(gè)數(shù)組而產(chǎn)生一個(gè)新的數(shù)組。

用where表述出更復(fù)雜的邏輯:(where的嵌套)

用于布爾型數(shù)組的方法

有兩個(gè)方法anyall

排序

多維數(shù)組可以在任何一個(gè)軸向上進(jìn)行排序,只需將軸編號(hào)傳給sort

頂級(jí)方法np.sort返回的數(shù)組已排序的副本,就地排序則會(huì)修改數(shù)組。

唯一化以及其他的集合邏輯

np.unique找出數(shù)組中的唯一值并返回已排序的結(jié)果。

np.in1d用于測試一個(gè)數(shù)組的值在另一個(gè)數(shù)組的情況。

隨機(jī)數(shù)生成

numpy.random模塊多了用于高效生產(chǎn)多種概率分布的樣本值的函數(shù)(用來生成大量樣本值)。


不足之處,歡迎指正。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/44753.html

相關(guān)文章

  • 數(shù)據(jù)學(xué)系統(tǒng)學(xué)習(xí)Python # 數(shù)據(jù)分析基本操作[二] pandas

    摘要:中面向行和面向列的操作基本是平衡的。用層次化索引,將其表示為更高維度的數(shù)據(jù)。使用浮點(diǎn)值表示浮點(diǎn)和非浮點(diǎn)數(shù)組中的缺失數(shù)據(jù)。索引的的格式化輸出形式選取數(shù)據(jù)子集在內(nèi)層中進(jìn)行選取層次化索引在數(shù)據(jù)重塑和基于分組的操作中很重要。 我們在上一篇介紹了 NumPy,本篇介紹 pandas。 pandas入門 Pandas 是基于Numpy構(gòu)建的,讓以NumPy為中心的應(yīng)用變的更加簡單。 pandas...

    jayzou 評(píng)論0 收藏0
  • 數(shù)據(jù)學(xué)系統(tǒng)學(xué)習(xí)】機(jī)器學(xué)習(xí)算法 # 西瓜書學(xué)習(xí)記錄 [3] Logistic 回歸實(shí)踐

    摘要:根據(jù)錯(cuò)誤率決定是否回退到訓(xùn)練階段,通過改變迭代的次數(shù)和步長等參數(shù)來得到更好的回歸系數(shù)。使用回歸方法進(jìn)行分類所需做的是把測試集上每個(gè)特征向量乘以最優(yōu)化方法得來的回歸系數(shù),再將該乘積結(jié)果求和,最后輸入到函數(shù)即可。 本篇內(nèi)容為《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》第 5 章 Logistic 回歸程序清單。 書中所用代碼為 python2,下面給出的程序清單是在 python3 中實(shí)踐改過的代碼,希望對(duì)你有幫助。...

    MSchumi 評(píng)論0 收藏0
  • 數(shù)據(jù)學(xué)系統(tǒng)學(xué)習(xí)Python # 數(shù)據(jù)分析基本操作[三] matplotlib

    摘要:有一些表示常見圖形的對(duì)象稱為塊,完整的集合位于。中的繪圖函數(shù)在中,有行標(biāo)簽列標(biāo)簽分組信息。密度圖通過計(jì)算可能會(huì)產(chǎn)生觀測數(shù)據(jù)的連續(xù)概率分布的估計(jì)而產(chǎn)生的。在探索式數(shù)據(jù)分析工作中,同時(shí)觀察一組變量的散布圖是很有意義的。 我們在上一篇介紹了 pandas,本篇介紹 matplotlib。 繪圖和可視化 一個(gè)用于創(chuàng)建出版質(zhì)量圖表的桌面繪圖包。 Matplotlib API入門 Figure ...

    BDEEFE 評(píng)論0 收藏0
  • 數(shù)據(jù)學(xué)系統(tǒng)學(xué)習(xí)Python # 數(shù)據(jù)分析基本操作[四] 數(shù)據(jù)規(guī)整化和數(shù)據(jù)聚合與分組運(yùn)算

    摘要:數(shù)據(jù)規(guī)整化清理轉(zhuǎn)換合并重塑數(shù)據(jù)聚合與分組運(yùn)算數(shù)據(jù)規(guī)整化清理轉(zhuǎn)換合并重塑合并數(shù)據(jù)集可根據(jù)一個(gè)或多個(gè)鍵將不同中的行鏈接起來。函數(shù)根據(jù)樣本分位數(shù)對(duì)數(shù)據(jù)進(jìn)行面元?jiǎng)澐帧W值浠颍o出待分組軸上的值與分組名之間的對(duì)應(yīng)關(guān)系。 本篇內(nèi)容為整理《利用Python進(jìn)行數(shù)據(jù)分析》,博主使用代碼為 Python3,部分內(nèi)容和書本有出入。 在前幾篇中我們介紹了 NumPy、pandas、matplotlib 三個(gè)...

    The question 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<