Я читал, что numpy беспристрастен в округлении и работает так, как задумано.Это «если вы всегда округляете 0,5 до следующего наибольшего числа, то среднее число округленных чисел, скорее всего, будет немного больше, чем среднее число неокругленных чисел: это смещение или дрейф может иметь очень плохие последствия для некоторых численных алгоритмов исделать их неточными. "
Не обращая внимания на эту информацию и предполагая, что я всегда хочу округлить, как я могу сделать это в 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. Как я могу заставить всегда получать округленный ответ для XX.5?Я знаю, что могу перебрать массив и использовать python round (), но это определенно будет намного медленнее.Интересно, есть ли способ сделать это, используя функции numpy