我了解到numpy在四舍五入时是无偏的,并且它按照设计工作。如果您总是将0.5向上舍入到下一个最大数字,则一堆舍入数字的平均值可能会略大于未舍入数字的平均值:这种偏差或漂移可能对某些数值算法产生非常不利的影响并使其不准确。
如果忽略此信息并假设我始终希望向上舍入,如何在numpy中实现呢?假设我的数组可能相当大。
为简单起见,假设我有以下数组:
整体看起来像这样:
如果忽略此信息并假设我始终希望向上舍入,如何在numpy中实现呢?假设我的数组可能相当大。
为简单起见,假设我有以下数组:
import numpy as np
A = [ [10, 15, 30], [25, 134, 41], [134, 413, 51]]
A = np.array(A, dtype=np.int16)
decimal = A * .1
whole = np.round(decimal)
十进制数看起来像:
[[ 1. 1.5 3. ]
[ 2.5 13.4 4.1]
[ 13.4 41.3 5.1]]
整体看起来像这样:
[[ 1. 2. 3.]
[ 2. 13. 4.]
[ 13. 41. 5.]]
您可以看到,1.5被四舍五入为2,2.5也被四舍五入为2。如何强制始终获得一个四舍五入的答案?我知道我可以循环遍历数组并使用Python round()函数,但这肯定会慢得多。想知道是否有一种方法可以使用numpy函数来解决这个问题。