用Python取np.array中某几行某几列

用Python取np.array中某几行某几列

这个问题源于对于NumPy中索引和切片的学习,发现书上和教程中只提到了对于某行的索引,但是没有提到对于数组中某几列某几列的索引应该如何完成。将下面的矩阵看成是一个3x3的数组,那么如果我怎么才能得到这个矩阵的某个子矩阵呢?
(1) 1 2 3 4 5 6 7 8 9 \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \tag{1} 147258369(1)
首先我们先回顾一下NumPy中的索引是如何完成的。对于一维数组的索引,大体上与Python中的列表相似,可以通过取得某个元素的值,同时也可以进行数值变更。

import numpy as np
x_1 = np.array([1,2,3,4,5,6,7,8,9]) #创建二维数组
x_1[1] #提取一维数组中某个元素
x_1[1:3] #提取第2到4个元素

对于二维数组来说,使用同样的方法提取到的就是一维数组而不是标量了,那么怎么才能提取np.array的某几行某几列的元素呢?大致的思路是先取得我们想要的行数据,再取得我们想要的列数据。仍旧拿上面的矩阵来举例,如果我们想取得第1、3行第2、3列的数组子集,那么我们可以先取得第1、3行的数据,之后再取得第2、3列的数据。
(2) 2 3 8 9 \begin{matrix} 2 & 3 \\ 8 & 9 \end{matrix} \tag{2} 2839(2)

import numpy as np
X_2 = np.array([[1,2,3],[4,5,6],[7,8,9]])
E = [0,2] #定义行数
F = [1,2] #定义列数
X_3 = X_2[E] #先取出需要的行
X_3 = X_3[:F] #再出去需要的列
print(X_3)

结果如图所示:

array([[2, 3],
       [8, 9]])
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值