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