python - 在二维 numpy 数组的每一行中查找最小非零值
问题描述
我试图在 2d numpy 数组的每一行中找到最小的非零值,但还没有找到一个优雅的解决方案。我看过其他一些帖子,但没有一个解决完全相同的问题,例如
2d 数组中的最小值或Min/Max 不包括零但在一维数组中。
例如对于给定的数组:
x = np.array([[3., 2., 0., 1., 6.], [8., 4., 5., 0., 6.], [0., 7., 2., 5., 0.]])
答案是:
[1., 4., 2.]
解决方案
一种方法是将零重新分配给 np.inf,然后每行取最小值:
np.where(x>0, x, np.inf).min(axis=1)
输出:
array([1., 4., 2.])
推荐阅读
- xamarin - Xamarin:构建已被取消
- laravel - 未找到 Laravel 控制器
- github - GitHub 的 GraphQL API:如何获取我对特定公共存储库所做的所有提交?
- javascript - 如何延迟 jquery hide on mousedown 直到 CSS 动画完成?
- sql - 如何一次选择并导出 5,000 行借记和贷记交易,并使借记和贷记余额为零?
- python - 理解列表和输出
. 在 0x000002C392688C78> - javascript - 通过 JavaScript 打开 UIKit modal
- javascript - 使用 innerhtml 显示下拉列表文本而不是值
- reactjs - 我的应用程序表示内存泄漏与 componentWillmount() 有问题
- ios - CollectionView 不响应触摸事件