Функция true_divide
Функция true_divide выполняет поэлементное деление массивов и всегда возвращает результат в виде чисел с плавающей точкой (тип float). Первым параметром передаётся делимое, вторым - делитель. Третьим параметром можно указать массив, в который будет сохранён результат, и четвёртым - настройки вещания. Если делитель равен нулю, возвращается inf или NaN.
Синтаксис
np.true_divide(x1, x2, out=None, where=True)
Пример
Создадим два массива и разделим один на другой:
import numpy as np
arr1 = np.array([10, 20, 30, 40])
arr2 = np.array([2, 4, 5, 8])
res = np.true_divide(arr1, arr2)
print(res)
Результат выполнения кода:
[5. 5. 6. 5.]
Пример
Если оба массива целочисленные, результат всё равно будет с плавающей точкой. В отличие от divide, которая может вернуть целые числа:
import numpy as np
arr1 = np.array([3, 7, 5, 9])
arr2 = np.array([2, 3, 4, 5])
res_float = np.true_divide(arr1, arr2)
res_int = np.divide(arr1, arr2)
print("true_divide:", res_float)
print("divide: ", res_int)
Результат выполнения кода:
true_divide: [1.5 2.33333333 1.25 1.8 ]
divide: [1 2 1 1]
Пример
Деление массива на скаляр с использованием параметра out для сохранения результата:
import numpy as np
arr = np.array([5, 10, 15, 20])
res = np.empty(4, dtype=float)
np.true_divide(arr, 3, out=res)
print(res)
Результат выполнения кода:
[1.66666667 3.33333333 5. 6.66666667]
Пример
Обработка деления на ноль - возвращается бесконечность или нечисло:
import numpy as np
arr1 = np.array([1, 0, 5])
arr2 = np.array([0, 0, 2])
res = np.true_divide(arr1, arr2)
print(res)
Результат выполнения кода:
[ inf nan 2.5]
Смотрите также
-
функцию
divide,
которая выполняет деление с сохранением целого типа для целочисленных массивов -
функцию
floor_divide,
которая возвращает целую часть от деления с округлением вниз -
функцию
mod,
которая возвращает остаток от поэлементного деления -
функцию
reciprocal,
которая вычисляет обратные значения для каждого элемента