Python中numpy 數組的切片操作


Python中numpy 數組的切片操作
簡介
取元素 X[n0,n1]
切片 X[s0:e0,s1:e1]
切片特殊情況 X[:e0,s1:]
示例代碼
輸出結果
簡介
X[n0,n1]是通過 numpy 庫引用二維數組或矩陣中的某一段數據集的一種寫法。
類似的,X[n0,n1,n2]表示取三維數組,取N維數組則有N個參數,N-1個逗號分隔。
以二維數組為例:

import numpy as np
X = np.array([[0,1,2,3],[10,11,12,13],[20,21,22,23],[30,31,32,33]])
1
2
X 是一個二維數組,維度分別為 0 ,1;為了方便理解多維,采取數中括號的方式 ‘[’ 確定維數,例如:從左往右,第 0 層 [] 表示第 0 維;第 1 層 [] 表示第 1 維;…以此類推。

取元素 X[n0,n1]
這是最基本的情況,表示取 第0維 的第 n0 個元素,繼續取 第1維 的第 n1個元素。如 X[2,2] 表示第0維第2個元素[20,21,22,23],然后取其第1維的第2個元素即 22;

切片 X[s0:e0,s1:e1]
這是最通用的切片操作,表示取 第0維 的第 s0 到 e0 個元素,繼續取 第1維 的第 s1 到 e1 個元素(左閉右開)。如 X[1:3,1:3] 表示第0維第(1:3)個元素[[10,11,12,13],[20,21,22,23]],然后取其第1維的第(1:3)個元素即 [[11,12],[21,22]];

切片特殊情況 X[:e0,s1:]
特殊情況,即左邊從0開始可以省略X[:e0,s1:e1],右邊到結尾可以省略X[s0:,s1:e1],取某一維全部元素X[:,s1:e1],事實上和Python 的 序列切片規則是一樣的。

常見的 X[:,0] 則表示 第0維取全部,第1維取0號元素;

示例代碼
import numpy as np

X = np.array([[0,1,2,3],[10,11,12,13],[20,21,22,23],[30,31,32,33]])

# X 是一個二維數組,維度為 0 ,1
# 第 0 層 [] 表示第 0 維;第 1 層 [] 表示第 1 維;

# X[n0,n1] 表示第 0 維 取第n0 個元素 ,第 1 維取第 n1 個元素
print(X[1,0])
# X[1:3,1:3] 表示第 0 維 取 (1:3)元素 ,第 1 維取第(1:3) 個元素
print(X[1:3,1:3])

# X[:n0,:n1] 表示第 0 維 取 第0 到 第n0 個元素 ,第 1 維取 第0 到 第n1 個元素
print(X[:2,:2])
# X[:,:n1] 表示第 0 維 取 全部元素 ,第 1 維取 第0 到第n1 個元素
print(X[:,:2])

# X[:,0]) 表示第 0 維 取全部 元素 ,第 1 維取第 0 個元素
print(X[:,0])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
輸出結果
10
[[11 12]
[21 22]]
[[ 0 1]
[10 11]]
[[ 0 1]
[10 11]
[20 21]
[30 31]]
[ 0 10 20 30]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM