大家數(shù)據(jù)分析的環(huán)境安裝沒有什么問題了吧?那我們就開始登上數(shù)據(jù)分析這趟列車吧!本次列車首先從Numpy數(shù)組與重塑出發(fā),準(zhǔn)備好了嗎我們啟程了~~~~
#### Numpy是什么?
我們一起看一下來自百度百科給出的解釋:
> NumPy(Numerical Python)是Python的一種開源的數(shù)值計(jì)算擴(kuò)展。這種工具可用來存儲(chǔ)和處理大型矩陣,比Python自身的嵌套列表(nested list structure)結(jié)構(gòu)要高效的多(該結(jié)構(gòu)也可以用來表示矩陣(matrix)),支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫。
通過上面的解釋我們可以得出如下幾點(diǎn):
1、一個(gè)強(qiáng)大的N維數(shù)組對(duì)象Array;
2、比較成熟的函數(shù)庫;
4、實(shí)用的線性代數(shù)、傅里葉變換和隨機(jī)數(shù)生成函數(shù)。
另外還有兩個(gè)方便實(shí)用的利器:1. Ndarray對(duì)象 2. 切片和索引
原來我們存儲(chǔ)數(shù)據(jù)使用列表List,但是實(shí)現(xiàn)大型矩陣和一些函數(shù)運(yùn)算就有限了,所以我們可以將Numpy理解成就是List的升級(jí)版。
如果安裝的時(shí)候使用的anaconda安裝,我們下面就可以直接使用了。但是如果不是,就需要使用pip包管理器安裝一下。
安裝方法:
> pip install numpy
引用方法:
> import numpy as np
#### Numpy之Ndarray 對(duì)象
NumPy 最重要的一個(gè)特點(diǎn)是其 N 維數(shù)組對(duì)象 ndarray,它是一系列同類型數(shù)據(jù)的集合,以 0 下標(biāo)為開始進(jìn)行集合中元素的索引。
該對(duì)象是?個(gè)快速?靈活的?數(shù)據(jù)集容器。你可以利?這種數(shù)組對(duì)整塊數(shù)據(jù)執(zhí)??些數(shù)學(xué)運(yùn)算,其語法跟標(biāo)量元素之間的運(yùn)算?樣。
ndarray 對(duì)象是用于存放同類型元素的多維數(shù)組。 ndarray 中的每個(gè)元素在內(nèi)存中都有相同存儲(chǔ)大小的區(qū)域。
##### Ndarray對(duì)象的創(chuàng)建
1. 使用 np.array()函數(shù)把 python傳入的序列對(duì)象創(chuàng)建成數(shù)組。如下:
**numpy.array(object)**
其中object是必須填寫的參數(shù),object可以是一個(gè)數(shù)組或者任何嵌套的序列。
在下面的代碼框中,我們使用代碼創(chuàng)建出一套吃雞武器列表:
['A416', 'AKM', 'AWM', 'win94', '鐵拳火箭筒','粘性炸彈']
```python
# 導(dǎo)入numpy數(shù)據(jù)包
import numpy as np
# 創(chuàng)建一個(gè)ndarray數(shù)組
np.array(['A416', 'AKM', 'AWM', 'win94', '鐵拳火箭筒','粘性炸彈'])
```
結(jié)果:
這組數(shù)據(jù)里面不僅有武器,還有各種配件:6倍鏡,有了配件的的加入你也試一下,看看有什么不同。
```python
# 導(dǎo)入numpy數(shù)據(jù)包
import numpy as np
# 創(chuàng)建一個(gè)ndarray數(shù)組
np.array([['美國隊(duì)長','鋼鐵俠','綠巨人','黑寡婦','蜘蛛俠'],['6倍鏡','步槍補(bǔ)償器','輕型握把','快速擴(kuò)容彈夾','步槍槍托','8倍鏡']])
```
運(yùn)行結(jié)果:
> array([list(['美國隊(duì)長', '鋼鐵俠', '綠巨人', '黑寡婦', '蜘蛛俠']),
> list(['6倍鏡', '步槍補(bǔ)償器', '輕型握把', '快速擴(kuò)容彈夾', '步槍槍托', '8倍鏡'])],
> dtype=object)
嵌套序列(?如由?組等?列表組成的列表)將會(huì)被轉(zhuǎn)換為?個(gè)多維數(shù)組
```python
# 導(dǎo)入numpy數(shù)據(jù)包
import numpy as np
# 創(chuàng)建一個(gè)ndarray數(shù)組
data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
np.array(data2)
```
運(yùn)行結(jié)果:
數(shù)據(jù)可以是我們通過列表創(chuàng)建出來的,也可以自己“假裝”構(gòu)造出來數(shù)據(jù),這些數(shù)據(jù)在我們需要的時(shí)候可以隨時(shí)上場。
大將1:np.arange(start, stop, step)函數(shù)可以通過指定開始值、終值、步長來創(chuàng)建一個(gè)等差數(shù)列, 不包括終值;
大將2: np.linspace(start, stop, num,endpoint)函數(shù)可以通過指定開始值、終值、元素個(gè)數(shù)創(chuàng)建等差數(shù)列, 通過endpoint參數(shù)指定是否包括終值,默認(rèn)包括;
大將3: zeros()、ones()函數(shù)可以創(chuàng)建指定的數(shù)組, 參數(shù)使用元組或列表, 大家一般都使用元組.
先感受一番大將的風(fēng)采,使用np.arange創(chuàng)建一個(gè)指定范圍的數(shù)列。
```python
# 導(dǎo)入numpy數(shù)據(jù)包
import numpy as np
# 使用arange()創(chuàng)建數(shù)組,類似range()函數(shù)
x = np.arange(6)
x
```
結(jié)果:
還可以指定起始,結(jié)束和步長值,看一看:
```python
# 導(dǎo)入numpy數(shù)據(jù)包
import numpy as np
# 使用arange()創(chuàng)建數(shù)組,類似range()函數(shù)
x = np.arange(1,10,3)
x
```
結(jié)果:
小學(xué)的時(shí)候?qū)W過等差數(shù)列或者給你一組數(shù)據(jù)讓你找規(guī)律?那時(shí)候沒有掉太多頭發(fā)吧?