[TOC]
*****
# 1. Numpy科學計算
numpy 是 python科學計算的核心庫。PYTHON里涉及到科學計算的包括Pandas,sklearn等都是基于numpy進行二次開發包裝的。numpy功能非常強大,和scipy構建了強大的PYTHON數理計算功能,函數接口豐富復雜。

* 數組的定義和應用
* 數組元素的索引選取
* 數組的計算

## 數組:Arrays
array用來**存儲同類型的序列數據**,能夠被非負整數進行索引。 維度的數量就是array的秩(rank)。
我們可以通過python的列表來創建array,并且通過方括號進行索引獲取元素
```
import numpy as np
a = np.array([1,3,4,6,10])
```

*****
```
#有五個元素
print(a.size)
# 是一維的
print(a.shape)
# 按索引取元素
print(a[2])
```

*****
**高維數組的創建**
對于多維數組的理解,看《利用Python進行數據分析》的4.1.4小節

```
# 二維數組
b = np.array([[1,2,3,4],[5,6,7,8]])
print(b.shape)
```


*****
**axis = 0表示在行方向上的索引選取。axis=1表示在列方向上的進行索引選取**
*****
## 創建Array
numpy提供了內置的函數來創建一些特殊的數組,我們僅僅需要傳遞創建的大小即可


*****
```
#按照b的數組結構全填0
np.zeros_like(b)
```
*****
生成如下圖的數組

*****
## Array的常用屬性和方法
* 統計計算
* 排序
* 按照大小查索引
* 條件查找
* shape
*****
生成3行4列的數組




*****

*****

*****
**聚合計算**


*****

*****

*****
## Shape改變
一個數組的 shape 是由軸及其元素數量決定的,它一般由一個整型元組表示,且元組中的整數表示對應維度的元素數
我們最容易接觸到的shape改變就是轉置,這通常用于計算dot

還有一種常見的情形是在機器學習中應用,我們需要改變數組的形狀從而適應我們的建模需要


*****

ravel()和reshape()生成新的數組,不改變原有的數組

*****
## 隨機數
numpy可以根據一定的規則創建隨機數,隨機數的使用會在后面概率論,數據挖掘的時候經常用到。
*****
生成3*4的隨機數,生成范圍[0,1)

*****
```
#生成10個隨機數
np.random.rand(10)
```
*****
生成一個不大于10的隨機數

*****
生成兩個5*2的數組。生成范圍[0.0, 1.0)

*****

*****
生成3*4的數組,數組中的每個元素從前面的參數列表中隨機選取

*****
## 數組的索引
**切片**選取類似于list,但是array可以是多維度的,因此我們需要指定每一個維度上的操作


*****
[]里用切片進行選取,第一個切片參數是在行索引方向上進行選取。[1:3]表示選中位置下標為1的行到位置下標為3的行。
切片按位置選取時,前閉后開,會選到位置下標為2的行止

*****
[0:1]選取位置從第0行到1行。逗號后0選取第一列

*****

*****

**整數索引**
```
#行位置索引列表1,2。列位置索引列表0,1。所以選中(1,0)和(2,1)
a[[1,2],[0,1]]
```


*****
**布爾型索引**
```
# 選出數組中所有大于4的元素
a >4
a[a>4]
```


*****
**圖解索引**
mask是行索引從位置0到最后一行,每行被選中與否的布爾值列表

*****
a[2::2,::2]。2::2表示選中位置為2的行和從2開始能不斷加2得到索引行。::2表示選中位置為0的列和從0開始能不斷加2得到的索引列

*****
## 數學計算
需要線性代數的知識


*****

*****


*****

*****

*****

*****
## 實際應用
### 機器學習
在我們學習到后面機器學習的時候,會遇到一個公式。這個公式在統計學習中叫做最小二乘法,在機器學習中的線性回歸模型中叫做平方和誤差
Prediction是線性回歸模型預測試,求與觀測值的方差,數字越大,模型預測能力越差




### **文本**
我們可以把一句話切割成單個的字符

- 第五節 Pandas數據管理
- 1.1 文件讀取
- 1.2 DataFrame 與 Series
- 1.3 常用操作
- 1.4 Missing value
- 1.5 文本數據
- 1.6 分類數據
- 第六節 pandas數據分析
- 2.1 索引選取
- 2.2. 分組計算
- 2.3. 表聯結
- 2.4. 數據透視與重塑(pivot table and reshape)
- 2.5 官方小結圖片
- 第七節 NUMPY科學計算
- 第八節 python可視化
- 第九節 統計學
- 01 單變量
- 02 雙變量
- 03 數值方法
- 第十節 概率
- 01 概率
- 02 離散概率分布
- 03 連續概率分布
- 第一節 抽樣與抽樣分布
- 01抽樣
- 02 點估計
- 03 抽樣分布
- 04 抽樣分布的性質
- 第十三節 區間估計
- 01總體均值的區間估計:??已知
- 02總體均值的區間估計:??未知
- 03總體容量的確定
- 04 總體比率