我有一个 numpy 数组:
array([[ 0, 1, 2, 3, 4, 5, 6],
[14, 15, 16, 17, 18, 19, 20],
[28, 29, 30, 31, 32, 33, 34]])
我想逐元素除以 10,然后按元素四舍五入(<0.5 向下舍入为 0(。
尝试:
import numpy as np
array = np.array([[ 0, 1, 2, 3, 4, 5, 6],
[14, 15, 16, 17, 18, 19, 20],
[28, 29, 30, 31, 32, 33, 34]], dtype=float)
result = np.round(array / 10)
result
将被array([[ 0., 0., 0., 0., 0., 0., 1.],
[ 1., 2., 2., 2., 2., 2., 2.],
[ 3., 3., 3., 3., 3., 3., 3.]])
numpy
中有一个舍入函数可以处理舍入: numpy.round()
:
import numpy as np
array = np.array([[ 0, 1, 2, 3, 4, 5, 6],
[14, 15, 16, 17, 18, 19, 20],
[28, 29, 30, 31, 32, 33, 34]])
np.round(array / 10)
# array([[ 0., 0., 0., 0., 0., 0., 1.],
# [ 1., 2., 2., 2., 2., 2., 2.],
# [ 3., 3., 3., 3., 3., 3., 3.]])
然而,这将向下舍入x.5
(如果x
是偶数(,但向上舍入y.5
(如果y
是奇数(。请参阅np.around()
中的注释