仅将numpy数组舍入为.5或.0
我必须将 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])