如何获取形状为(9,2,2)的Numpy矩阵各内层子矩阵的最小值
如何提取Numpy中每个内层(2,2)矩阵的最小值?
针对shape为(9,2,2)的Numpy矩阵A,要获取每个内层(2,2)矩阵的最小值并生成shape为(9,)的数组B,可以直接使用numpy.min()并指定计算维度:
完整代码实现
import numpy as np # 定义示例矩阵 A = np.array([[[24, 73], [35, 67]], [[35, 68], [21, 5]], [[29, 69], [60, 46]], [[98, 25], [50, 92]], [[63, 27], [55, 28]], [[60, 89], [61, 66]], [[87, 38], [44, 33]], [[64, 76], [76, 70]], [[90, 91], [71, 58]]]) # 计算每个内层矩阵的最小值 B = A.min(axis=(1, 2)) # 也可以用等价写法:B = np.min(A, axis=(-2, -1))
结果说明
运行代码后得到的B为:
array([24, 5, 29, 25, 27, 60, 33, 64, 58])
(注:你提供的预期结果中第7个元素为38,但实际示例矩阵第7个内层矩阵的最小值是33,以上为实际计算的正确结果)
此时np.shape(B)返回(9,),完全符合需求。
核心原理
矩阵A的维度结构是(外层数量, 内层行, 内层列),指定axis=(1,2)时,Numpy会对每个外层元素对应的所有内层行、列元素取最小值,最终压缩为一维数组。
内容的提问来源于stack exchange,提问作者Nicholas Nicholas
相关产品推荐
相关产品推荐

