如何最优地检查NumPy数组是否全部为非负数?
数组全非负判断的实现分析
下面这个方法能实现判断数组是否全为非负的功能,但从算法角度看并非最优——因为遍历数组时完全不需要存储整个数组的最小值:
import numpy as np def is_non_negative(m): return np.min(m) >= 0
补充说明:
- 最优的实现逻辑是首次遇到负数就终止遍历,这种方式能根据数据分布大幅节省时间:如果数组中预期仅存在一个负数,平均耗时可直接减半
- 但需要注意:在NumPy库外自行编写这种最优逻辑的成本极高,毕竟Python代码的执行效率远不如NumPy底层的C++代码
内容的提问来源于stack exchange,提问作者quickbug
相关产品推荐
相关产品推荐

