目錄
一、Numpy
二、Pandas
一、Numpy
numpy是以矩陣為基礎(chǔ)的數(shù)學(xué)計(jì)算模塊,提供高性能的矩陣運(yùn)算,數(shù)組結(jié)構(gòu)為ndarray。
首先需要明確數(shù)組與列表的區(qū)別:數(shù)組是一種特殊變量,雖與列表相似,但列表可以存儲(chǔ)任意類(lèi)型的數(shù)據(jù),數(shù)組只能存儲(chǔ)一種類(lèi)型的數(shù)據(jù),同時(shí),數(shù)組提供了許多方便統(tǒng)計(jì)計(jì)算的功能(如平均值mean、標(biāo)準(zhǔn)差std等)。
那么numpy有哪些功能呢?
首先在使用前要導(dǎo)入該模塊(導(dǎo)入前要安裝,方法自行搜索吧(*^-^*)),代碼如下:
import numpy as np
1. 通過(guò)原有列表轉(zhuǎn)化為數(shù)組
2.直接生成數(shù)組
- 生成一維數(shù)組? ?
-
?
?上圖中由于生成一維數(shù)組時(shí),沒(méi)有給參數(shù)10 定義數(shù)據(jù)類(lèi)型,所以數(shù)組元素的類(lèi)型默認(rèn)為float64。那定義數(shù)據(jù)類(lèi)型為整型時(shí)會(huì)是什么結(jié)果呢?
- 生成多維數(shù)組?
zeros返回來(lái)一個(gè)給定形狀和類(lèi)型的用0填充的數(shù)組,同理,ones返回來(lái)一個(gè)給定形狀和類(lèi)型的用1填充的數(shù)組。但更多情況下我們想指定某個(gè)值,這時(shí)用np.full(shape, val)生成全為val的值,如下:
?
- 隨機(jī)數(shù)取值?
我們知道random庫(kù)中可以通過(guò)random.randint(5,10)來(lái)隨機(jī)生成一個(gè)5-10的數(shù),如下:
在numpy中也有一個(gè)類(lèi)似的加強(qiáng)版的功能。
?
- 范圍取值??
- ?
訪問(wèn)數(shù)組中的元素
?
- ?基本數(shù)學(xué)運(yùn)算
numpy在做運(yùn)算時(shí),是對(duì)數(shù)組中每個(gè)元素都進(jìn)行運(yùn)算。
?常用的運(yùn)算符號(hào)及等價(jià)函數(shù)總結(jié)如下:
?
- ?數(shù)組變形
?數(shù)組變形時(shí),數(shù)組總大小保持不變,如上圖中我們定義了一個(gè)兩行五列的數(shù)組,總大小為2*5=10,經(jīng)變形后得到一行十列的數(shù)組,總大小仍為10,但我們無(wú)法變成3*4或6*9等類(lèi)型。
- 數(shù)組拼接
- 數(shù)組排序
二、Pandas
pandas是基于numpy數(shù)組構(gòu)建的,但二者最大的不同是pandas是專(zhuān)門(mén)為處理表格和混雜數(shù)據(jù)設(shè)計(jì)的,比較契合統(tǒng)計(jì)分析中的表結(jié)構(gòu),而numpy更適合處理統(tǒng)一的數(shù)值數(shù)組數(shù)據(jù)。pandas數(shù)組結(jié)構(gòu)有一維Series和二維DataFrame。
使用前同樣需要先導(dǎo)入該模塊,代碼如下:
import pandas as pd
1. Series
Series是一種類(lèi)似于一維數(shù)組的對(duì)象,它由一組數(shù)據(jù)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(索引index)組成。
?Series的字符串表現(xiàn)形式為:索引在左邊,值在右邊。如果不為數(shù)據(jù)指定索引,則會(huì)默認(rèn)創(chuàng)建一個(gè)0到n-1的整數(shù)型索引。
- ?通過(guò)原有字典轉(zhuǎn)化為數(shù)組
- ?訪問(wèn)元素
與numpy相比,除了根據(jù)位置獲取值外,還可以根據(jù)索引獲取。
?
- ?向量化運(yùn)算
上圖運(yùn)行結(jié)果可以看到出現(xiàn)了缺失值NaN(not a number),這是因?yàn)樗饕礲、c、d、e、f、g只出現(xiàn)在一個(gè)一維數(shù)組中。在數(shù)據(jù)分析過(guò)程中,我們通常不希望缺失值出現(xiàn),那么如何解決呢?
一般常用的有兩種方法:
?2. DataFrame
DataFrame是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),其中的數(shù)據(jù)是以一個(gè)或多個(gè)二維塊存放的,而不是列表、字典或別的一維數(shù)據(jù)結(jié)構(gòu)。它含有一組有序的列,每列可以是不同的數(shù)據(jù)類(lèi)型,它既有行索引,也有列索引。
- 將原有字典轉(zhuǎn)化為DataFrame
- ?訪問(wèn)元素
?
?
- ?條件篩選
- ??排序
?
- ?應(yīng)用函數(shù)
?
?其他常用函數(shù)舉例如下:
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-401841.html
# 取前五行
table.head()
# 取后五行
table.tail()
# 查看行列數(shù)
table.shape()
# 查看每一列的統(tǒng)計(jì)信息
table.describe()
......
?以上就是numpy與pandas的基礎(chǔ)內(nèi)容,如有遺漏或錯(cuò)誤,歡迎評(píng)論區(qū)指正~~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-401841.html
到了這里,關(guān)于Numpy&Pandas的區(qū)別和聯(lián)系的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!