DevGang
Авторизоваться

numpy.floor_divide() в Python: подробное руководство

Функция numpy.floor_divide() в Python используется для поэлементного разделения двух массивов. Он возвращает наибольшее целое число, которое меньше или равно каждому элементу результирующего массива. Эта функция особенно полезна, когда мы хотим получить целочисленное частное после деления, отбрасывая остаток.

В этой статье мы разберемся с функцией Python numpy.floor_divide(), ее синтаксисом, а также увидим различные способы разделения массивов с помощью этой функции. Давайте начнем.

Синтаксис функции numpy.floor_divide()

Давайте начнем с понимания основных составляющих функции numpy.floor_divide() с помощью ее синтаксиса, приведенного ниже.

Синтаксис:

numpy.floor_divide(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None)

Параметры:

  • x1: это массив дивидендов или скалярное значение.
  • x2: это массив делителей или скалярное значение.
  • out (необязательно): это необязательный параметр, указывающий место, где должен храниться результат. Если не указано, будет создан новый массив.
  • where (необязательно): этот параметр используется для условного выполнения. Если указано, в результат будут включены только те элементы, для которых условие имеет значение True.
  • casting (необязательно): этот параметр определяет, какой тип приведения данных может происходить. По умолчанию установлено значение «same_kind», что означает, что разрешено только приведение типов между похожими типами (например, между числами с плавающей запятой).
  • order (необязательно): определяет расположение результата в памяти. По умолчанию установлено значение «K», что означает, что порядок определяется расположением памяти входного массива.
  • dtype (необязательно): этот параметр позволяет нам установить тип данных выходного массива. Если не указано, оно определяется типами данных входных массивов.

Функция numpy.floor_divide() возвращает массив той же формы, что и входные массивы, где каждый элемент представляет собой наибольшее целое число, меньшее или равное соответствующим элементам в x1, разделенным на x2.

Примеры функции numpy.floor_divide()

Давайте теперь рассмотрим несколько примеров, демонстрирующих использование функции numpy.floor_divide() в Python.

Пример 1: 1D-массивы с numpy.floor_divide()

Давайте сначала посмотрим пример, в котором мы передаем два одномерных массива в numpy.floor_divide(), который будет выполнять поэлементное разделение между ними.

import numpy as np
ar1 = np.array([11, 24, 21])
ar2 = np.array([4, 4, 19])
result = np.floor_divide(ar1, ar2)
print(result)

В приведенном выше коде мы сначала импортировали библиотеку NumPy как np и с ее помощью создали два одномерных массива. Затем мы передали эти два массива в функцию numpy.floor_divide(), которая будет выполнять поэлементное деление и вычислять минимальное значение, в результате чего получается одномерный массив.

Выход:

Здесь мы видим, что мы получили первый элемент в нашем результирующем массиве как 2, потому что первый элемент первого массива ar1 был разделен на первый элемент второго массива ar2, что дает 2,75, но после вычисления его минимального значения он становится 2.

Таким же образом 24/4 = 6, а минимальное значение 6 равно 6, поэтому второй элемент в нашем результирующем массиве равен 6. Теперь, если мы видим третий элемент результирующего массива, это 1, потому что 21/19 = 1,1 и минимальное значение 1,1 равно 1. Таким образом, наш результирующий массив равен [2,6,1]

Пример 2. Когда входные массивы содержат отрицательные элементы

Давайте посмотрим, как вычислить деление пола, когда мы передаем массивы, содержащие отрицательные элементы, в функцию numpy.floor_divide().

import numpy as np
ar1 = np.array([-10, 20, -30])
ar2 = np.array([3, -2, 6])
result = np.floor_divide(ar1, ar2)
print(result)

Выход:

Мы видим, что мы получили выходной массив таким же образом, как и в приведенном выше примере.

Первый элемент выходного массива равен -4, как если бы мы делали -10/3 = -3,3, а минимальное значение -3,3 - -4. Таким же образом мы получили второй элемент как -10 и третий элемент как -5 в выходном массиве.

Пример 3. Когда один вход является скаляром, а другой — массивом

Теперь давайте выполним разделение этажей, приняв один из входных данных в качестве скаляра, а другой будет одномерным массивом.

import numpy as np
ar = np.array([14, 8, 19])
sc = 3
result = np.floor_divide(ar, sc)
print(result)

В этом примере мы взяли значение масштабирования 3, которое мы передали с нашим массивом ar в функцию numpy.floor_divide(). Это означает, что эта функция вычисляет результирующий массив путем деления скалярного значения sc на каждый элемент из нашего массива и вычисления его нижнего значения. .

Выход:

Во-первых, когда первый элемент входного массива, равный 14, был разделен на скалярное значение, равное 3, мы получили 4,6, а после вычисления минимального значения 4,6 мы получили 4, поэтому мы получили 4 в качестве первого элемента в нашем результате. множество.

Аналогично, 8/3 = 2,6, а минимальное значение 2,6 равно 2, поэтому второй элемент в массиве результатов равен 2, а для третьего элемента 19/3 = 6,3, а минимальное значение 6,3 равно 6, поэтому третий элемент в результирующий массив равен 6.

Пример 4. Передача параметра dtype в функцию numpy.floor_divide()

Как мы знаем, функция numpy.floor_divide() по умолчанию возвращает нам целочисленный массив, но мы можем изменить тип данных нашего результирующего массива, передав другой тип данных в параметр dtype в функции numpy.floor_divide().

ar1= np.array([13,15,38])
ar2 = np.array([6,4,2])
output_datatype = np.float64
result = np.floor_divide(ar1, ar2, dtype=output_datatype)
print(result)

В приведенном выше коде мы передали один дополнительный параметр dtype как float в функцию numpy.floor_divde(), которая изменила тип данных нашего результирующего массива на float.

Выход:

Мы видим, что в нашем выходном массиве есть элементы типа float.

Разница между функцией numpy.floor_divide() и numpy.true_divide()

Основное различие между numpy.floor_divide() и numpy.true_divide() заключается в типе деления, выполняемого обеими функциями, и типе возвращаемого ими результата.

Давайте сначала посмотрим, какой тип деления выполняют обе функции. Функция numpy.floor_divide() выполняет деление пола, и результат, который мы получаем, представляет собой наибольшее целое число, которое меньше или равно результату деления, в то время как функция numpy.true_divide() выполняет деление с плавающей запятой.

Когда мы говорим о результате, который они возвращают, функция numpy.floor_divide() отбрасывает дробную часть результата деления, что означает, что она возвращает нам целочисленный массив, тогда как numpy.true_divide() всегда возвращает результат деления с плавающей запятой, который также включает десятичную часть, что означает, что он возвращает нам массив с плавающей запятой.

Проще говоря, если нам нужен точный результат деления с плавающей запятой, включая десятичную часть, мы можем использовать функцию numpy.true_divide(), а если нам нужен целочисленный результат, исключающий десятичную часть, мы можем использовать numpy.floor_divide() функция.

Заключение

Теперь, когда мы подошли к концу этой статьи, надеемся, что она подробно описала различные способы нахождения поэлементного деления массивов с помощью функции numpy.floor_divide() из библиотеки NumPy. Для тех, кто хочет продвинуться в Python, на CodeforGeek есть масса других интересных и не менее образовательных статей, которые могут оказаться весьма полезными.

Источник:

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу