В этом разница:
A = np.array([-1.72, -1.58, -0.2, 0.2, 1.5, 1.7, 2.0])
np.round(A,1)
array([-1.7, -1.6, -0.2, 0.2, 1.5, 1.7, 2. ])
np.rint(A)
array([-2., -2., -0., 0., 2., 2., 2.])
Вы в основном используете np.round()
, когда хотите округлить до любого десятичного знака, как здесь, я сделал это для одного десятичного знака, поэтому я получил -1.7
для -1.72
вместо -2
, который я получил в np.rint()
Одной из возможных причин наличия np.rint(x)
, когда np.round(x,0)
может выполнить нашу работу, является скорость вычислений, которую предлагает нам первый. Когда я запустил оба фрагмента кода и записал время выполнения операции, я получил
%%timeit
np.round(A,0)
5.16 µs ± 495 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%%timeit
np.rint(A)
1.06 µs ± 28.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
Мы очень хорошо видим, что np.rint()
выполняет работу примерно в пять раз быстрее, чем np.round()
.
Надеюсь, это поможет!