假设我有一个这样的数组:
[1,5, 2, 6, 6.7, 8, 10]
我想把大于n的数降下来。例如,如果n是6,数组将如下所示:
[1,5, 2, 6, 6, 6, 6]
我已经尝试过使用numpy的解决方案。vectorize:
lower_down = lambda x : min(6,x) lower_down = numpy.vectorize(lower_down)
它可以工作,但是太慢了。我怎样才能使它更快呢?有没有一个 numpy 函数可以达到同样的效果?
dly7yett1#
Numpy已经有了一个minimum函数,不需要创建自己的。
minimum
>>> np.minimum(6, [1,5, 2, 6, 6.7, 8, 10]) array([1., 5., 2., 6., 6., 6., 6.])
xvw2m8pv2#
如果要限制它,可以使用numpy.minimum(或numpy.maximum):第一个如果需要限制最小值和最大值,请尝试numpy.clip函数:
>>> np.clip([1, 2, 3, 4], 2, 3) array([2, 2, 3, 3])
来自文档:
eh57zj3b3#
您可以这样做:
import numpy as np array = [1,5, 2, 6, 6.7, 8, 10] array = np.array(array) array[array >= 6] = 6 new_array = array print(new_array)
[1.第五条第二款第六项第六款第六项]
dtcbnfnu4#
请尝试以下操作:
import numpy as np data = np.array([1,5, 2, 6, 6,7, 8, 10]) data[data >6 ] = 6
4条答案
按热度按时间dly7yett1#
Numpy已经有了一个
minimum
函数,不需要创建自己的。xvw2m8pv2#
如果要限制它,可以使用numpy.minimum(或numpy.maximum):
第一个
如果需要限制最小值和最大值,请尝试numpy.clip函数:
来自文档:
eh57zj3b3#
您可以这样做:
[1.第五条第二款第六项第六款第六项]
dtcbnfnu4#
请尝试以下操作: