Numpy 在矩阵运算中使用得非常频繁。今天,我将向大家展示 numpy 如何解决 Python 中的切片问题。
1.取元素 X[n0,n1]
这是最基本的情况,就是取第0维的第n0个元素,继续取第1维的第n1个元素。比如X[2,2]代表第0维[20,21,22,23]的第二个元素,然后取第一维的第二个元素,即22;
2.切片 X[s0:e0,s1:e1]
这是最一般的切片操作,意思是取维度为0的元素s0到e0,继续取维度为1的元素s1到e1(左闭右开)。例如,X[1:3,1:3] 表示第 0 维 [[10,11,12,13],[20,21,22,23]] 的第 (1:3) 个元素,然后取第一个维度的第 (1:3) 个元素是 [[11,12],[21,22]];
3.切片特殊情况 X[:e0,s1:]
特殊情况下,X[:e0,s1:e1] 可以从左侧从 0 省略,X[s0:,s1:e1] 可以从右侧到末尾省略,一个维度 X 的所有元素[:,s1:e1] 可以取,其实和Python的序列切片规则是一样的。
常见的 X[:,0] 则表示 第0维取全部,第1维取0号元素;
示例代码
<p><span>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])<br/></span></p>
输出结果
<p><span>10
[[11 12]
[21 22]]
[[ 0 1]
[10 11]]
[[ 0 1]
[10 11]
[20 21]
[30 31]]
[ 0 10 20 30]<br/></span></p>
PS:
X[n0,n1]
简介
X[n0,n1]是通过numpy库引用二维数组或矩阵中的某个数据集的一种方式。
同理,X[n0,n1,n2]表示取一个3维数组,取一个N维数组有N个参数,用N-1个逗号隔开。
以二维数组为例:
<p><span>import numpy as np<br/>X = np.array([[0,1,2,3],[10,11,12,13],[20,21,22,23],[30,31,32,33]])<br/></span></p>
X 是一个二维数组,维度分别为 0 和 1;为了便于理解多维性,维数由括号中的'['确定,例如:从左到右,第0层[]代表第0维; Level 1[] 表示第一维; …等等。
学过切片方法的朋友不要错过我们的下一篇numpy索引~更多Python学习推荐:
。
(推荐操作系统:windows7系统、Python 3.9.1,DELL G3电脑。)
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python3中如何判断进程是否存在10/12
- ♥ 如何用python3调用def函数?09/15
- ♥ 切换到 java 或 python10/20
- ♥ python中的mypy是什么11/13
- ♥ python如何嵌套列表10/27
- ♥ 什么是 python 文档字符串09/15
内容反馈