我有一个正值矩阵,以及一个阈值列表。阈值列表已排序。例如:
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
,但它并不是我需要的。
答案 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
#{}