【转载】Python中numpy 数组的切片操作
简介
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]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-258a4616f7.css" rel="stylesheet">
</div>
简介
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
推荐阅读
-
彻底区分MATLAB C Python中数组的索引及切片
-
【转载】Python中numpy 数组的切片操作
-
python:Numpy常用操作(三):生成特定形状的多维数组
-
详解Python中的__getitem__方法与slice对象的切片操作
-
详解Python中的__getitem__方法与slice对象的切片操作
-
对Python 数组的切片操作详解
-
基于numpy中数组元素的切片复制方法
-
Python中的Numpy矩阵操作
-
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
-
Python Numpy 数组的初始化和基本操作