如何将矩阵元素与 NumPy 中的阈值进行比较
How to compare matrix elements to threshold in NumPy
我有一个正值矩阵,以及一个阈值列表。阈值列表已排序。例如:
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
,但它并没有完全满足我的需要。
您可以使用np.searchsorted
获取指数:
>>> np.array(y)[np.searchsorted(y, X)]
array([[ 1. , 3. , 3. ],
[ 0.5, 3. , 1. ],
[ 5. , 1. , 3. ]])
我有一个正值矩阵,以及一个阈值列表。阈值列表已排序。例如:
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
,但它并没有完全满足我的需要。
您可以使用np.searchsorted
获取指数:
>>> np.array(y)[np.searchsorted(y, X)]
array([[ 1. , 3. , 3. ],
[ 0.5, 3. , 1. ],
[ 5. , 1. , 3. ]])