Python常用統計算法(簡體書)
商品資訊
系列名:Python在大氣海洋科學中的應用
ISBN13:9787030684462
出版社:科學出版社
作者:王關鎖
出版日:2021/12/29
裝訂/頁數:平裝/237頁
規格:24cm*17cm (高/寬)
版次:一版
商品簡介
目次
書摘/試閱
商品簡介
在《Python基礎》的學習上,《Python常用統計算法》介紹了Python在大氣海洋科學研究中常用的各種統計分析方法。《Python常用統計算法》分為兩部分:第一部分介紹用Python做科學計算常用的軟件包,包含Numpy、Pandas、Scipy等內容;第二部分介紹大氣海洋數據常用的各種統計分析方法,包含平均分析、誤差分析、方差分析、相關分析、趨勢分析、突變檢測、周期分析、回歸分析、濾波分析、聚類分析、判別分析、插值、擬合與逼近、時空結構分離等方法,對每個方法的計算步驟進行詳細的介紹,給出對應的Python程序及應用案例。同時,還增加了閏年平年計算、地球球面多邊形面積、地球球面兩點距離等一些大氣海洋學科領域常用的算法。
目次
目錄
第1章 Numpy——Python 科學計算的基礎 1
1.1 為什麼使用 Numpy 1
1.2 Numpy 中的 ndarray 1
1.3 創建 Numpy 數組 6
1.3.1 np.empty 6
1.3.2 np.zeros 7
1.3.3 np.ones 7
1.3.4 np.identity 8
1.3.5 np.fromiter 8
1.3.6 np.arange 9
1.3.7 np.linspace 9
1.3.8 np.logspace 10
1.3.9 np.fromfunction 11
1.4 Numpy 數組的索引與切片 11
1.4.1 一維數組 11
1.4.2 二維數組 12
1.4.3 多維數組 14
1.4.4 數組切片 15
1.4.5 花式索引 15
1.4.6 布爾型索引 17
1.5 Numpy 數組的運算 17
1.5.1 Numpy 數組的加法 18
1.5.2 Numpy 數組的乘法 19
1.5.3 Numpy 數組的轉置 20
1.5.4 Numpy 數組的逆 20
1.6 Numpy 數組的簡單統計 20
1.7 Numpy 解決線性代數問題 25
1.8 Numpy 數組的廣播機制 26
第2章 Pandas——Python 數據分析庫 28
2.1 為什麼使用 Pandas 28
2.2 Series 28
2.2.1 創建 Series 28
2.2.2 訪問 Series 30
2.2.3 Series 的屬性 32
2.2.4 Series 常用函數 35
2.3 從 Series 到 DataFrame 38
2.3.1 創建 DataFrame 38
2.3.2 DataFrame 的常用方法 40
2.3.3 DataFrame 中數據的選取 43
2.3.4 分組與聚合統計 47
2.3.5 時間序列分析 49
第3章 Scipy——Python 科學計算 52
3.1 為什麼使用 Scipy 52
3.2 sp.cluster 52
3.2.1 K-Means 聚類 53
3.2.2 層次聚類 53
3.3 sp.constants 54
3.4 sp.fftpack 55
3.5 sp.integrate 56
3.6 sp.interpolate 57
3.7 sp.io 58
3.8 sp.odr 59
3.9 sp.optimize 60
3.10 sp.stats 61
3.10.1 產生隨機數 61
3.10.2 求概率密度 62
3.10.3 求累積概率密度 62
3.10.4 累積分布函數的逆函數 62
3.11 其他計算包簡介 63
3.11.1 sp.linalg 63
3.11.2 sp.ndimage 63
3.11.3 sp.signal 63
3.11.4 sp.sparse 63
3.11.5 sp.spatial 63
3.11.6 sp.special 63
第4章 平均分析 64
4.1 一維數組的算術平均 64
4.2 一維數組的加權平均 64
4.3 多維數組在指定維度的算術平均 65
4.4 距平 66
4.5 基於多年逐月氣象觀測資料計算月平均氣候態及距平 67
第5章 誤差分析 69
5.1 平均誤差 69
5.2 平均絕對誤差 69
5.3 相對絕對誤差 70
5.4 均方根誤差 71
5.5 降水預報檢驗常見指標 72
第6章 方差分析 74
6.1 方差和標準差 74
6.2 基於方差的兩組樣本差異性檢驗 75
6.3 協方差 76
6.4 自協方差 76
6.5 落後交叉協方差 77
6.6 峰度系數和偏度系數 78
第7章 相關分析 79
7.1 皮爾遜相關係數及顯著性檢驗 79
7.2 斯皮爾曼相關係數及顯著性檢驗 80
7.3 三變量偏相關係數及顯著性檢驗 81
7.4 自相關係數及顯著性檢驗 83
7.5 落後交叉相關係數及顯著性檢驗 84
7.6 氣候矩平 85
第8章 趨勢分析 87
8.1 線性傾向 87
8.2 滑動平均 89
8.3 累積距平 90
8.4 五點、七點和九點二次平滑 91
8.5 五點三次平滑 93
8.6 顯著性檢驗 94
第9章 突變檢測 96
9.1 滑動 t 檢驗 96
9.2 克拉默法(Cramer) 97
9.3 山本法(Yamamoto) 98
9.4 曼–肯德爾法 (Mann-Kendall) 99
9.5 佩蒂特法 (Pettitt) 101
第10章 周期分析 102
10.1 功率譜 102
10.2 交叉譜 104
第11章 回歸分析 107
11.1 一元線性回歸 107
11.2 多元線性回歸 109
11.3 逐步回歸 112
11.4 自回歸分析 114
11.5 自回歸滑動平均 117
第12章 濾波分析 121
12.1 基於滑動平均的低通濾波 121
12.2 基於二項系數滑動的低通濾波 122
12.3 高斯低通濾波 123
12.4 Butterworth 帶通濾波 124
12.5 Lanczos 帶通濾波 125
12.6 自設計帶通濾波器 127
第13章 聚類分析 129
13.1 K-Means 聚類算法 129
13.2 層次聚類算法 132
13.3 SOM 聚類算法 135
13.4 FCM 聚類算法 140
第14章 判別分析 145
14.1 二級判別分析 145
14.2 距離判別法 147
14.3 貝葉斯判別法 149
14.4 費希爾判別法 154
14.5 逐步判別法 158
第15章 插值 166
15.1 一維線性插值 166
15.2 一維 N 階拉格朗日插值 166
15.3 埃爾米特插值 167
15.4 埃特金插值 168
15.5 第一種邊界條件下的三次樣條函數插值 169
15.6 第二種邊界條件下的三次樣條函數插值 171
15.7 二元三點插值 173
15.8 雙線性插值 174
15.9 反距離權重插值 175
15.10 牛頓插值 177
第16章 擬合與逼近 180
16.1 *小二乘曲線擬合 180
16.2 切比雪夫曲線擬合 182
16.3 *佳一致逼近的裡米茲方法 184
第17章 時空結構分離 187
17.1 經驗正交函數分解 187
17.2 旋轉經驗正交函數分解 191
17.3 主振蕩分析 196
第18章 變量場相關模態分離 202
18.1 典型相關分析 202
18.2 BP 典型相關分析 208
18.3 奇異值分解 211
第19章 航空運行大氣科學常見算法 218
19.1 EI 顛簸指數 218
19.2 TI 顛簸指數 219
19.3 MOS CAT 概率預報因子指數 220
19.4 垂直風切變 221
19.5 水平風切變 221
19.6 Dutton 經驗指數 222
19.7 ICAO 建議積冰指數 223
19.8 新積冰算法 223
19.9 RAOB 積冰算法 224
19.10 假霜點判別法 225
19.11 Farneback 光流法與金字塔算法結合 226
第20章 隨機數 231
20.1 0~1 均勻分布的一個隨機數 231
20.2 任意區間內均勻分布的一個隨機整數 231
20.3 任意均值與方差的一個正態分布隨機數 232
第21章 常用算法 234
21.1 眾數 234
21.2 中位數 234
21.3 四舍五入 235
21.4 數據標準化 235
21.5 數據歸一化 236
21.6 閏年平年 236
21.7 地球上兩點間的距離 236
21.8 地球上多邊形的面積 237
第1章 Numpy——Python 科學計算的基礎 1
1.1 為什麼使用 Numpy 1
1.2 Numpy 中的 ndarray 1
1.3 創建 Numpy 數組 6
1.3.1 np.empty 6
1.3.2 np.zeros 7
1.3.3 np.ones 7
1.3.4 np.identity 8
1.3.5 np.fromiter 8
1.3.6 np.arange 9
1.3.7 np.linspace 9
1.3.8 np.logspace 10
1.3.9 np.fromfunction 11
1.4 Numpy 數組的索引與切片 11
1.4.1 一維數組 11
1.4.2 二維數組 12
1.4.3 多維數組 14
1.4.4 數組切片 15
1.4.5 花式索引 15
1.4.6 布爾型索引 17
1.5 Numpy 數組的運算 17
1.5.1 Numpy 數組的加法 18
1.5.2 Numpy 數組的乘法 19
1.5.3 Numpy 數組的轉置 20
1.5.4 Numpy 數組的逆 20
1.6 Numpy 數組的簡單統計 20
1.7 Numpy 解決線性代數問題 25
1.8 Numpy 數組的廣播機制 26
第2章 Pandas——Python 數據分析庫 28
2.1 為什麼使用 Pandas 28
2.2 Series 28
2.2.1 創建 Series 28
2.2.2 訪問 Series 30
2.2.3 Series 的屬性 32
2.2.4 Series 常用函數 35
2.3 從 Series 到 DataFrame 38
2.3.1 創建 DataFrame 38
2.3.2 DataFrame 的常用方法 40
2.3.3 DataFrame 中數據的選取 43
2.3.4 分組與聚合統計 47
2.3.5 時間序列分析 49
第3章 Scipy——Python 科學計算 52
3.1 為什麼使用 Scipy 52
3.2 sp.cluster 52
3.2.1 K-Means 聚類 53
3.2.2 層次聚類 53
3.3 sp.constants 54
3.4 sp.fftpack 55
3.5 sp.integrate 56
3.6 sp.interpolate 57
3.7 sp.io 58
3.8 sp.odr 59
3.9 sp.optimize 60
3.10 sp.stats 61
3.10.1 產生隨機數 61
3.10.2 求概率密度 62
3.10.3 求累積概率密度 62
3.10.4 累積分布函數的逆函數 62
3.11 其他計算包簡介 63
3.11.1 sp.linalg 63
3.11.2 sp.ndimage 63
3.11.3 sp.signal 63
3.11.4 sp.sparse 63
3.11.5 sp.spatial 63
3.11.6 sp.special 63
第4章 平均分析 64
4.1 一維數組的算術平均 64
4.2 一維數組的加權平均 64
4.3 多維數組在指定維度的算術平均 65
4.4 距平 66
4.5 基於多年逐月氣象觀測資料計算月平均氣候態及距平 67
第5章 誤差分析 69
5.1 平均誤差 69
5.2 平均絕對誤差 69
5.3 相對絕對誤差 70
5.4 均方根誤差 71
5.5 降水預報檢驗常見指標 72
第6章 方差分析 74
6.1 方差和標準差 74
6.2 基於方差的兩組樣本差異性檢驗 75
6.3 協方差 76
6.4 自協方差 76
6.5 落後交叉協方差 77
6.6 峰度系數和偏度系數 78
第7章 相關分析 79
7.1 皮爾遜相關係數及顯著性檢驗 79
7.2 斯皮爾曼相關係數及顯著性檢驗 80
7.3 三變量偏相關係數及顯著性檢驗 81
7.4 自相關係數及顯著性檢驗 83
7.5 落後交叉相關係數及顯著性檢驗 84
7.6 氣候矩平 85
第8章 趨勢分析 87
8.1 線性傾向 87
8.2 滑動平均 89
8.3 累積距平 90
8.4 五點、七點和九點二次平滑 91
8.5 五點三次平滑 93
8.6 顯著性檢驗 94
第9章 突變檢測 96
9.1 滑動 t 檢驗 96
9.2 克拉默法(Cramer) 97
9.3 山本法(Yamamoto) 98
9.4 曼–肯德爾法 (Mann-Kendall) 99
9.5 佩蒂特法 (Pettitt) 101
第10章 周期分析 102
10.1 功率譜 102
10.2 交叉譜 104
第11章 回歸分析 107
11.1 一元線性回歸 107
11.2 多元線性回歸 109
11.3 逐步回歸 112
11.4 自回歸分析 114
11.5 自回歸滑動平均 117
第12章 濾波分析 121
12.1 基於滑動平均的低通濾波 121
12.2 基於二項系數滑動的低通濾波 122
12.3 高斯低通濾波 123
12.4 Butterworth 帶通濾波 124
12.5 Lanczos 帶通濾波 125
12.6 自設計帶通濾波器 127
第13章 聚類分析 129
13.1 K-Means 聚類算法 129
13.2 層次聚類算法 132
13.3 SOM 聚類算法 135
13.4 FCM 聚類算法 140
第14章 判別分析 145
14.1 二級判別分析 145
14.2 距離判別法 147
14.3 貝葉斯判別法 149
14.4 費希爾判別法 154
14.5 逐步判別法 158
第15章 插值 166
15.1 一維線性插值 166
15.2 一維 N 階拉格朗日插值 166
15.3 埃爾米特插值 167
15.4 埃特金插值 168
15.5 第一種邊界條件下的三次樣條函數插值 169
15.6 第二種邊界條件下的三次樣條函數插值 171
15.7 二元三點插值 173
15.8 雙線性插值 174
15.9 反距離權重插值 175
15.10 牛頓插值 177
第16章 擬合與逼近 180
16.1 *小二乘曲線擬合 180
16.2 切比雪夫曲線擬合 182
16.3 *佳一致逼近的裡米茲方法 184
第17章 時空結構分離 187
17.1 經驗正交函數分解 187
17.2 旋轉經驗正交函數分解 191
17.3 主振蕩分析 196
第18章 變量場相關模態分離 202
18.1 典型相關分析 202
18.2 BP 典型相關分析 208
18.3 奇異值分解 211
第19章 航空運行大氣科學常見算法 218
19.1 EI 顛簸指數 218
19.2 TI 顛簸指數 219
19.3 MOS CAT 概率預報因子指數 220
19.4 垂直風切變 221
19.5 水平風切變 221
19.6 Dutton 經驗指數 222
19.7 ICAO 建議積冰指數 223
19.8 新積冰算法 223
19.9 RAOB 積冰算法 224
19.10 假霜點判別法 225
19.11 Farneback 光流法與金字塔算法結合 226
第20章 隨機數 231
20.1 0~1 均勻分布的一個隨機數 231
20.2 任意區間內均勻分布的一個隨機整數 231
20.3 任意均值與方差的一個正態分布隨機數 232
第21章 常用算法 234
21.1 眾數 234
21.2 中位數 234
21.3 四舍五入 235
21.4 數據標準化 235
21.5 數據歸一化 236
21.6 閏年平年 236
21.7 地球上兩點間的距離 236
21.8 地球上多邊形的面積 237
書摘/試閱
第1章 Numpy.Python 科學計算的基礎
Python 語言是一門語義化很強的語言,而且這種語言也經常用在科學計算中。Python 能夠用於科學計算中,不僅僅是因為它相對其他語言更好理解,而且有很多前人已經書寫完成 Python 與科學計算相關的模塊或包,能夠很大程度上簡化我們書寫的語句以及提高編寫的效率與代碼的可讀性。
想要使用 Python 進行科學計算,首先要了解的包就是 Numpy,這是在 Python 科學計算中*基礎的一個包。學習 Numpy 這個包時,可將 Numpy 理解為提供矩陣運算的包。
在本章中,筆者將為讀者介紹 Numpy 的用法以及簡單的實例,而在本書的後面章節也會涉及 Numpy 的相關知識以及具體用法。
1.1 為什麼使用 Numpy
我們使用 Numpy,一定程度上是因為該包提供了很多關於矩陣運算的內容(在 Numpy中,我們習慣性地將這種矩陣稱為“數組”或“Numpy 數組”)。但是有的讀者可能就想到了,我可以使用列表來生成一個數組,並且通過原生的 Python 進行一些計算。如此操作是沒有問題的,但是在這個過程中,將會涉及極其復雜的 I/O 操作,因此將會影響程序運行的速度。
為了解決程序運行速度的問題,使用 Numpy 這個包進行操作。但是,同樣是 Python,Numpy 為什麼會提高運行速度呢?其原因就是,Numpy 不完全是原生的 Python,其底層操作是調用 C 語言完成的,而 C 語言的執行效率又非常之高,因此就能夠提高程序運行的速度。
所以一提到 Numpy,就經常將它和運行效率較高的 C 語言結合在一起。當你使用Numpy 的時候,其實就是在使用 C 語言來運行程序並且處理數據。
1.2 Numpy 中的 ndarray
Numpy 中所有的操作都是基於數組展開的,那麼一提到數組,就不得不提 Numpy 中*重要的一個物件——ndarray 物件,該物件的作用是組織 Numpy 數組。在 Python 中,理解 ndarray 物件的*好方式是將其理解為一個可以進行更高效操作的 list 物件。這樣在操作 ndarray 物件的時候就可以得心應手了。在 ndarray 中,所有的數據都是同一類數據,也只能是同一類數據。那麼,如何使用 ndarray 呢?其實 ndarray 物件就蘊藏在 numpy.array中。以下是 numpy.array 的示例:
# 引入 Numpy 包(說明:在使用 Numpy 時,習慣性簡稱為 np)
import numpy as np
np.array(
object , dtype = None , copy = True , order = None , subok = False , ndmin = 0
)
參數說明:
上述參數雖然多,但是一般我們在使用的過程中經常提到的參數僅有兩個,一個是必 填的 object,另一個是用於指定生成數據的數據類型 dtype。以下是一個生成數組的簡單 示例:
import numpy as np
# 生成時如不指定 dtype,Numpy 將會根據輸入的類型自動檢查
# 如果需要強制指定數據類型,可以強制覆寫 dtype
a = np.array([
[1, 2, 3],
[2, 3, 4]
], dtype = np.float64)
print(a)
以下是樣例輸出:
[[1. 2. 3.]
[2. 3. 4.]]
由上述案例可以看到,我們通過從 Python 原生的數據類型 list 中,生成了一個 Numpy數組,並且我們通過指定其類型 dtype=np.float64,將原本均為整數的列表轉化為 float64類型的浮點數數組。那麼,Numpy 都為我們準備了哪些數據類型呢?我們通過下面這個表來了解。
續表
對於已經實例化的 array,也有很多屬性能夠了解它的內部狀態。
1) 返回數組維度的數量。
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6])
b = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.ndim)
print(b.ndim)
以下是樣例輸出:
1
2
ndarray.ndim 用於返回維度的數量,這與我們平時所說的“n 維數組”的 n 一致。
2) 返回數組的大小。
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.shape)
以下是樣例輸出:
(2, 3)
ndarray.shape 用於返回數組的大小,這與我們平時所說的“m × n 的數組”中的 m和 n 一致。
3) 返回數組元素個數。
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.size)
以下是樣例輸出:
6
ndarray.size 用於返回元素的總個數,其值為 m × n。
4) 返回數組的數據類型。
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.dtype)
以下是樣例輸出:
int32
5) 返回數組每個元素的大小。
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.itemsize)
以下是樣例輸出:
4
6) 返回數組內存信息。
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.flags)
以下是樣例輸出:
C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : True
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False
7) 返回復數數組的實部和虛部。
import numpy as np
a = np.array([
[1 + 6j, 2 + 5j, 3 + 4j],
[4 + 3j, 5 + 2j, 6 + 1j]
])
print(a.real)
print(a.imag)
以下是樣例輸出:
[[1. 2. 3.]
[4. 5. 6.]]
[[6. 5. 4.]
[3. 2. 1.]]
8) 獲取數組數據區內容。
import numpy as np
a = np.ma.array([
[1, 2, 3],
[4, 5, 6]
], mask=[
[True , False , True],
[False , True , False]
])
print(a)
# .data 方法一般用於 mask 數組
print(a.data)
以下是樣例輸出:
[[-- 2 --]
[4 -- 6]]
[[1 2 3]
[4 5 6]]
1.3 創建 Numpy 數組
想要使用 Numpy 進行數組的操作,第一步就是要學會如何創建 Numpy 數組,本節將講述幾種創建數組的常用方式。
1.3.1 np.empty
1) 程序語句。
np.empty(shape, dtype=float, order='C')
2) 作用:返回一個空數組。
3) 參數說明。
4) 使用示例。
import numpy as np
a = np.empty ((3, 3))
print(a)
以下是樣例輸出:
[[1.61327616e-307 3.56043053e-307 1.60219306e-306]
[2.44763557e-307 1.69119330e-306 1.33514617e-307]
[3.56011818e-307 1.60219306e-306 1.11258446e-306]]
Python 語言是一門語義化很強的語言,而且這種語言也經常用在科學計算中。Python 能夠用於科學計算中,不僅僅是因為它相對其他語言更好理解,而且有很多前人已經書寫完成 Python 與科學計算相關的模塊或包,能夠很大程度上簡化我們書寫的語句以及提高編寫的效率與代碼的可讀性。
想要使用 Python 進行科學計算,首先要了解的包就是 Numpy,這是在 Python 科學計算中*基礎的一個包。學習 Numpy 這個包時,可將 Numpy 理解為提供矩陣運算的包。
在本章中,筆者將為讀者介紹 Numpy 的用法以及簡單的實例,而在本書的後面章節也會涉及 Numpy 的相關知識以及具體用法。
1.1 為什麼使用 Numpy
我們使用 Numpy,一定程度上是因為該包提供了很多關於矩陣運算的內容(在 Numpy中,我們習慣性地將這種矩陣稱為“數組”或“Numpy 數組”)。但是有的讀者可能就想到了,我可以使用列表來生成一個數組,並且通過原生的 Python 進行一些計算。如此操作是沒有問題的,但是在這個過程中,將會涉及極其復雜的 I/O 操作,因此將會影響程序運行的速度。
為了解決程序運行速度的問題,使用 Numpy 這個包進行操作。但是,同樣是 Python,Numpy 為什麼會提高運行速度呢?其原因就是,Numpy 不完全是原生的 Python,其底層操作是調用 C 語言完成的,而 C 語言的執行效率又非常之高,因此就能夠提高程序運行的速度。
所以一提到 Numpy,就經常將它和運行效率較高的 C 語言結合在一起。當你使用Numpy 的時候,其實就是在使用 C 語言來運行程序並且處理數據。
1.2 Numpy 中的 ndarray
Numpy 中所有的操作都是基於數組展開的,那麼一提到數組,就不得不提 Numpy 中*重要的一個物件——ndarray 物件,該物件的作用是組織 Numpy 數組。在 Python 中,理解 ndarray 物件的*好方式是將其理解為一個可以進行更高效操作的 list 物件。這樣在操作 ndarray 物件的時候就可以得心應手了。在 ndarray 中,所有的數據都是同一類數據,也只能是同一類數據。那麼,如何使用 ndarray 呢?其實 ndarray 物件就蘊藏在 numpy.array中。以下是 numpy.array 的示例:
# 引入 Numpy 包(說明:在使用 Numpy 時,習慣性簡稱為 np)
import numpy as np
np.array(
object , dtype = None , copy = True , order = None , subok = False , ndmin = 0
)
參數說明:
上述參數雖然多,但是一般我們在使用的過程中經常提到的參數僅有兩個,一個是必 填的 object,另一個是用於指定生成數據的數據類型 dtype。以下是一個生成數組的簡單 示例:
import numpy as np
# 生成時如不指定 dtype,Numpy 將會根據輸入的類型自動檢查
# 如果需要強制指定數據類型,可以強制覆寫 dtype
a = np.array([
[1, 2, 3],
[2, 3, 4]
], dtype = np.float64)
print(a)
以下是樣例輸出:
[[1. 2. 3.]
[2. 3. 4.]]
由上述案例可以看到,我們通過從 Python 原生的數據類型 list 中,生成了一個 Numpy數組,並且我們通過指定其類型 dtype=np.float64,將原本均為整數的列表轉化為 float64類型的浮點數數組。那麼,Numpy 都為我們準備了哪些數據類型呢?我們通過下面這個表來了解。
續表
對於已經實例化的 array,也有很多屬性能夠了解它的內部狀態。
1) 返回數組維度的數量。
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6])
b = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.ndim)
print(b.ndim)
以下是樣例輸出:
1
2
ndarray.ndim 用於返回維度的數量,這與我們平時所說的“n 維數組”的 n 一致。
2) 返回數組的大小。
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.shape)
以下是樣例輸出:
(2, 3)
ndarray.shape 用於返回數組的大小,這與我們平時所說的“m × n 的數組”中的 m和 n 一致。
3) 返回數組元素個數。
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.size)
以下是樣例輸出:
6
ndarray.size 用於返回元素的總個數,其值為 m × n。
4) 返回數組的數據類型。
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.dtype)
以下是樣例輸出:
int32
5) 返回數組每個元素的大小。
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.itemsize)
以下是樣例輸出:
4
6) 返回數組內存信息。
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(a.flags)
以下是樣例輸出:
C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : True
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False
7) 返回復數數組的實部和虛部。
import numpy as np
a = np.array([
[1 + 6j, 2 + 5j, 3 + 4j],
[4 + 3j, 5 + 2j, 6 + 1j]
])
print(a.real)
print(a.imag)
以下是樣例輸出:
[[1. 2. 3.]
[4. 5. 6.]]
[[6. 5. 4.]
[3. 2. 1.]]
8) 獲取數組數據區內容。
import numpy as np
a = np.ma.array([
[1, 2, 3],
[4, 5, 6]
], mask=[
[True , False , True],
[False , True , False]
])
print(a)
# .data 方法一般用於 mask 數組
print(a.data)
以下是樣例輸出:
[[-- 2 --]
[4 -- 6]]
[[1 2 3]
[4 5 6]]
1.3 創建 Numpy 數組
想要使用 Numpy 進行數組的操作,第一步就是要學會如何創建 Numpy 數組,本節將講述幾種創建數組的常用方式。
1.3.1 np.empty
1) 程序語句。
np.empty(shape, dtype=float, order='C')
2) 作用:返回一個空數組。
3) 參數說明。
4) 使用示例。
import numpy as np
a = np.empty ((3, 3))
print(a)
以下是樣例輸出:
[[1.61327616e-307 3.56043053e-307 1.60219306e-306]
[2.44763557e-307 1.69119330e-306 1.33514617e-307]
[3.56011818e-307 1.60219306e-306 1.11258446e-306]]
主題書展
更多
主題書展
更多書展購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

















