如何用一行代码结合np.minimum将y中负数置0后与x取最小值
一行代码实现需求
直接利用numpy的np.maximum()函数先把y里的负数替换成0,再和x做逐元素取最小操作就行,完全不用循环:
import numpy as np # 示例数据 x = np.array([2, 5, 3]) y = np.array([-1, 4, -2]) # 核心一行代码 x = np.minimum(x, np.maximum(y, 0))
运行后x的结果会是array([0, 4, 0]),完全符合要求:y里的负数被替换成0,再和x取最小,返回0而非负数。
原理很直白:np.maximum(y, 0)会逐元素对比y的每个值和0,把小于0的元素替换成0,大于等于0的保持原样;之后把处理后的y和x传入np.minimum(),就能得到你想要的结果。
内容的提问来源于stack exchange,提问作者Tim Mountjoy
相关产品推荐
相关产品推荐

