Python中实现支持numpy数组的嵌套结构全局最大/最小值计算
全局最值计算函数实现(支持混合嵌套列表与numpy数组)
核心逻辑
通过递归遍历所有输入元素,对不同类型的元素做针对性处理:
- 遇到int/float/numpy数值等标量类型,直接纳入最值统计
- 遇到list/tuple等Python原生序列类型,递归遍历内部元素
- 遇到numpy数组,先展平为一维再遍历内部元素
完整实现代码
import numpy as np def _flatten_all(inputs): # 递归展开所有类型的输入为一维数值序列 if isinstance(inputs, (int, float, np.number)): yield inputs elif isinstance(inputs, np.ndarray): # numpy数组直接展平后遍历 for item in inputs.flat: yield item elif isinstance(inputs, (list, tuple)): # 原生嵌套结构递归展开 for item in inputs: yield from _flatten_all(item) def total_max(*args): # 计算所有输入的全局最大值,返回单个标量 return max(_flatten_all(args)) def total_min(*args): # 计算所有输入的全局最小值,返回单个标量 return min(_flatten_all(args))
效果验证
>>> total_max(3.5,[4.5,1,[2,3], np.random.uniform(size=(5,6)),4],[2,-3]) 4.5
适配特性
- 支持任意数量的输入参数,无需提前合并参数
- 兼容任意深度的Python原生嵌套列表/元组
- 兼容任意维度的numpy数组,无需提前对数组做单独处理
- 最终输出为单个标量数值,完全符合要求
内容的提问来源于stack exchange,提问作者Jakob
相关产品推荐
相关产品推荐

