学网站开发怎么样,手动删除wordpress插件,手工活300元一天,网站建设贴吧目录
相关阅读
方法一#xff1a;使用切片操作
方法二#xff1a;使用高级索引 方法三#xff1a;使用条件筛选 方法四#xff1a;使用 numpy 的 take 函数 相关阅读
OpenCV基础#xff1a;矩阵的创建、检索与赋值-CSDN博客
OpenCV基础#xff1a;图像运算-CSDN博客…目录
相关阅读
方法一使用切片操作
方法二使用高级索引 方法三使用条件筛选 方法四使用 numpy 的 take 函数 相关阅读
OpenCV基础矩阵的创建、检索与赋值-CSDN博客
OpenCV基础图像运算-CSDN博客 以下是使用 numpy 获取子矩阵的几种常见方法
方法一使用切片操作
import numpy as np# 创建一个示例矩阵
matrix np.array([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12],[13, 14, 15, 16]])sub_matrix matrix[0:2, 0:2]
print(sub_matrix) 代码解释
matrix[0:2, 0:2] 是切片操作对于二维数组第一个 0:2 表示行的范围从第 0 行开始到第 2 行不包括第 2 行第二个 0:2 表示列的范围从第 0 列开始到第 2 列不包括第 2 列。切片操作的基本语法是 start:stop:step其中 start 是起始索引stop 是结束索引不包括该索引对应的元素step 是步长默认为 1。
运行结果 方法二使用高级索引
import numpy as np# 创建一个示例矩阵
matrix np.array([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12],[13, 14, 15, 16]])# 使用高级索引获取子矩阵选取特定的行和列
rows [0, 2]
cols [1, 3]
sub_matrix matrix[np.ix_(rows, cols)]
print(sub_matrix)代码解释
np.ix_ 是 numpy 中的一个函数它可以将两个一维整数数组转换为一个用于选择矩阵元素的索引器。np.ix_(rows, cols) 会生成一个索引器用于选取 rows 中指定的行和 cols 中指定的列所构成的子矩阵。 运行结果 方法三使用条件筛选
import numpy as np# 创建一个示例矩阵
matrix np.array([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12],[13, 14, 15, 16]])# 筛选出元素大于 5 的元素所在的行和列形成的子矩阵
sub_matrix matrix[matrix 5]
print(sub_matrix)代码解释
matrix 5 会生成一个布尔型的数组其中元素大于 5 的位置为 True其余为 False。当将这个布尔型数组作为索引时会选取布尔型数组中为 True 的元素在二维矩阵中会返回一个一维数组包含了满足条件的元素。 运行结果 方法四使用 numpy 的 take 函数
import numpy as np# 创建一个示例矩阵
matrix np.array([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12],[13, 14, 15, 16]])# 使用 take 函数获取子矩阵选取第 0 行和第 2 行第 1 列和第 3 列
sub_matrix np.take(np.take(matrix, [0, 2], axis0), [1, 3], axis1)
print(sub_matrix)代码解释
np.take(matrix, [0, 2], axis0) 首先从矩阵matrix中选取第 0 行和第 2 行得到一个新的矩阵。然后 np.take(result, [1, 3], axis1) 从新得到的矩阵中选取第 1 列和第 3 列最终得到所需的子矩阵。
运行效果 这些方法各有特点可以根据不同的需求选择使用。切片操作最为直观和常用适用于已知具体行和列范围的情况高级索引 np.ix_ 可以灵活地选取不连续的行和列条件筛选适用于根据元素的值来选取元素np.take 函数在需要根据行和列的索引列表选取元素时比较方便。