如何在NumPy中将矩阵元素与阈值进行比较

时间:2015-05-19 12:05:01

标签: numpy matrix comparison

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

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,但它并不是我需要的。

1 个答案:

答案 0 :(得分:0)

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

=> (def chan-collection (atom #{}))
=> (def my-chan-1 (chan))
=> (def my-chan-2 (chan))
=> @chan-collection
#{}
=> (swap! chan-collection conj my-chan-1)
=> @chan-collection
#{#<ManyToManyChannel clojure.core.async.impl.channels.ManyToManyChannel@6ec3a2f6>}
=> (swap! chan-collection conj my-chan-2)
=> @chan-collection
#{#<ManyToManyChannel clojure.core.async.impl.channels.ManyToManyChannel@382830a1>
  #<ManyToManyChannel clojure.core.async.impl.channels.ManyToManyChannel@6ec3a2f6>}
=> (swap! chan-collection disj my-chan-1)
=> @chan-collection
#{#<ManyToManyChannel clojure.core.async.impl.channels.ManyToManyChannel@382830a1>}
=> (swap! chan-collection disj my-chan-2)
=> @chan-collection
#{}