Есть ли эффективный способ округления только одного столбца массива numpy?Т.е. я хочу, чтобы числа округлялись до ближайшего 0,5, что можно сделать с помощью round(number * 2.0) / 2.0
.
. Предположим, у меня есть массив numpy tmp
, и я стремлюсь округлить третий столбец.Я попробовал следующие вещи:
- Для округления до определенного десятичного знака я мог бы использовать
tmp[:,2] = np.around(tmp[:,2],1)
Но это не то, что я хочу.
Я определяю функцию и пытаюсь применить вдоль оси:
def roundToHalf(number):
return round(number * 2.0) / 2.0
tmp[:,2] = np.apply_along_axis(roundToHalf,0,tmp[:,2])
или
tmp[:,2] = roundToHalf(tmp[:,2])
Это не работает, потому что я получаю ошибку:
*** TypeError: type numpy.ndarray doesn't define __round__ method
В худшем случае я бы просто использовал цикл for.Но я надеюсь, что вы, ребята, поможете мне найти более плавное решение.