【问题标题】:How to compare matrix elements to threshold in NumPy如何在 NumPy 中将矩阵元素与阈值进行比较
【发布时间】:2016-09-13 23:31:27
【问题描述】:

我有一个正值矩阵,以及一个阈值列表。阈值列表已排序。例如:

X = np.matrix([[1., 2., 3.,], [0., 2., 1.], [4., 1., 2.]])
y = [0.5, 1., 3., 5.]

我想写一个函数,将X的所有小于y[1]的条目设置为y[1],所有等于或大于y[1]且小于y[2]的条目到 y[2] 等。

当然,这可以通过简单地迭代矩阵条目和阈值来完成,但我想找到一种更有效的方法。我查看了clip,但它并不能完全满足我的需要。

【问题讨论】:

  • 你能用“X的所有小于y[1]到y[1]的条目,所有等于或大于y[1]的条目和小于 y[2] 到 y[2] 等"谢谢

标签: numpy matrix comparison


【解决方案1】:

您可以使用np.searchsorted 获取索引:

>>> np.array(y)[np.searchsorted(y, X)]
array([[ 1. ,  3. ,  3. ],
       [ 0.5,  3. ,  1. ],
       [ 5. ,  1. ,  3. ]])

【讨论】:

  • 谢谢,这正是我需要的!
猜你喜欢
  • 2017-08-01
  • 2019-05-23
  • 2014-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
  • 2018-03-19
相关资源
最近更新 更多