NumpyPandas的区别和联系
目錄
一、Numpy
二、Pandas
一、Numpy
numpy是以矩陣為基礎(chǔ)的數(shù)學(xué)計(jì)算模塊,提供高性能的矩陣運(yùn)算,數(shù)組結(jié)構(gòu)為ndarray。
首先需要明確數(shù)組與列表的區(qū)別:數(shù)組是一種特殊變量,雖與列表相似,但列表可以存儲(chǔ)任意類型的數(shù)據(jù),數(shù)組只能存儲(chǔ)一種類型的數(shù)據(jù),同時(shí),數(shù)組提供了許多方便統(tǒng)計(jì)計(jì)算的功能(如平均值mean、標(biāo)準(zhǔn)差std等)。
那么numpy有哪些功能呢?
首先在使用前要導(dǎo)入該模塊(導(dǎo)入前要安裝,方法自行搜索吧(*^-^*)),代碼如下:
import numpy as np1. 通過(guò)原有列表轉(zhuǎn)化為數(shù)組
2.直接生成數(shù)組
- 生成一維數(shù)組? ?
- ?
?上圖中由于生成一維數(shù)組時(shí),沒(méi)有給參數(shù)10 定義數(shù)據(jù)類型,所以數(shù)組元素的類型默認(rèn)為float64。那定義數(shù)據(jù)類型為整型時(shí)會(huì)是什么結(jié)果呢?
- 生成多維數(shù)組?
zeros返回來(lái)一個(gè)給定形狀和類型的用0填充的數(shù)組,同理,ones返回來(lái)一個(gè)給定形狀和類型的用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è)類似的加強(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等類型。
- 數(shù)組拼接
- 數(shù)組排序
二、Pandas
pandas是基于numpy數(shù)組構(gòu)建的,但二者最大的不同是pandas是專門為處理表格和混雜數(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 pd1. Series
Series是一種類似于一維數(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ù)類型,它既有行索引,也有列索引。
- 將原有字典轉(zhuǎn)化為DataFrame
- ?訪問(wèn)元素
?
?
- ?條件篩選
- ??排序
?
- ?應(yīng)用函數(shù)
?
?其他常用函數(shù)舉例如下:
?
# 取前五行 table.head()# 取后五行 table.tail()# 查看行列數(shù) table.shape()# 查看每一列的統(tǒng)計(jì)信息 table.describe()......?以上就是numpy與pandas的基礎(chǔ)內(nèi)容,如有遺漏或錯(cuò)誤,歡迎評(píng)論區(qū)指正~~
總結(jié)
以上是生活随笔為你收集整理的NumpyPandas的区别和联系的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [106].从中序与后序遍历序列构造二叉
- 下一篇: 购物车模块如何进行测试?