仅将 numpy 数组舍入为 .5 或 .0
Round a numpy array to .5 or .0 only
我必须将 numpy 数组中的每个元素四舍五入为 .5 或 .0 值。我知道 np.arange()
方法,但是它在这个特定任务中没有用,因为我只能用它来设置等于 1 的精度。
这里有一个我应该做的例子:
x = np.array([2.99845, 4.51845, 0.33365, 0.22501, 2.48523])
x_rounded = some_function(x)
>>> x_rounded
array([3.0, 4.5, 0.5, 0.0, 2.5])
是否有内置方法可以这样做,或者我必须创建它?
如果我应该创建那个方法,有效率吗?我正在处理一个大数据集,所以我想避免迭代每个元素。
import numpy as np
x = np.array([2.99845, 4.51845, 0.33365, 0.22501, 2.48523])
np.round(2 * x) / 2
输出:
array([3. , 4.5, 0.5, 0. , 2.5])
我必须将 numpy 数组中的每个元素四舍五入为 .5 或 .0 值。我知道 np.arange()
方法,但是它在这个特定任务中没有用,因为我只能用它来设置等于 1 的精度。
这里有一个我应该做的例子:
x = np.array([2.99845, 4.51845, 0.33365, 0.22501, 2.48523])
x_rounded = some_function(x)
>>> x_rounded
array([3.0, 4.5, 0.5, 0.0, 2.5])
是否有内置方法可以这样做,或者我必须创建它? 如果我应该创建那个方法,有效率吗?我正在处理一个大数据集,所以我想避免迭代每个元素。
import numpy as np
x = np.array([2.99845, 4.51845, 0.33365, 0.22501, 2.48523])
np.round(2 * x) / 2
输出:
array([3. , 4.5, 0.5, 0. , 2.5])