有没有可计算两个序列逐行最小值、类似np.minimum的函数
逐元素取两个序列最小值的实现方案
- 无第三方依赖的Python原生实现,有两种常用写法,效果和
np.minimum完全一致:- 用
map搭配内置min函数 - 用列表推导式搭配
zip遍历
示例代码如下:
- 用
a = [1,4,2,5,2] b = [5,1,4,2,5] # 写法1 res1 = list(map(min, a, b)) print(res1) # 输出:[1, 1, 2, 2, 2] # 写法2 res2 = [min(x, y) for x, y in zip(a, b)] print(res2) # 输出:[1, 1, 2, 2, 2]
注意事项:原生实现如果遇到两个序列长度不一致的情况,会自动以更短的序列长度为准截断计算;
np.minimum针对numpy数组优化,不等长数组如果不符合广播规则会直接报错,使用前需要确认两个序列长度匹配。
- 如果你是在处理大规模数值数组的场景,直接使用
np.minimum就是最优选择,它的向量化实现运算效率远高于原生Python的循环类实现。
内容的提问来源于stack exchange,提问作者hakan.t
相关产品推荐
相关产品推荐

