操作嵌套的 numpy 数组



我有一个 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()中的注释

最新更新