NumPy arange(): Полное руководство (с примерами)

В этом руководстве вы узнаете, как использовать функцию NumPy arange для создания последовательности чисел. Это руководство научит вас всему, что вам нужно знать, включая то, как функция может быть настроена для ваших нужд. NumPy предоставляет ряд различных функций для создания массивов, таких как функция np.linspace() и np.zeros

Понимание того, как работать с массивами и как генерировать их на лету, является важным навыком для любого аналитика данных или специалиста по данным. Поскольку NumPy так важен для других библиотек анализа данных, таких как Pandas и Scikit-Learn, важно понимать, как это работает.

К концу этого руководства вы научитесь:

  • Как использовать функцию NumPy arange() для создания последовательностей чисел

  • Как настроить функцию для обратного счета или создания отрицательных чисел

  • Как изменить типы данных функции NumPy arange()

  • Как генерировать двумерные массивы с помощью функции NumPy arange()

  • Чем функция NumPy arange() отличается от других функций

Оглавление

Понимание функции NumPy arange()

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

# Понимание функции NumPy arange()
np.arange([start, ]stop, [step, ]dtype=None, *, like=None)

Функция np.arange() возвращает одномерный массив с равномерно разнесенными значениями в заданном диапазоне. Этот метод похож на встроенную функцию range() в Python, но возвращает массив NumPy вместо списка.

Из приведенного выше блока кода видно, что функция предлагает пять различных параметров. В таблице ниже описаны параметры и их аргументы по умолчанию:

Параметр
Описание
Аргумент по умолчанию
Принятые значения

start=

Начальное значение интервала, который включается. (необязательный):

0

integer, real value

stop=

Конец интервала, который не включается.

N/A

integer, real value

step=

Расстояние между значениями. Если в качестве аргумента позиции указан шаг, необходимо также указать начало. (необязательный)

1

integer, real value

dtype=

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

None

dtype

like=

Объект, от которого будет взят тип данных.(необязательный)

None

array-like

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

Использование диапазона NumPy для создания числовой последовательности

Функция arange() в NumPy имеет только один обязательный параметр: параметр stop. По умолчанию NumPy начинает свои последовательности значений с 0 и увеличивает их на 1. Если вы передаете одно число, значения будут увеличиваться от 0 до (но не включая) указанное значение, с шагом 1.

Давайте посмотрим, как можно создать массив значений от 0 до 4:

# Создание последовательности чисел с использованием функции NumPy arange()
import numpy as np

arr = np.arange(5)
print(arr)

# Returns: [0 1 2 3 4]

Этот код создает одномерный массив с последовательностью чисел от 0 до 4 с помощью функции np.arange().

Мы видим, что функция возвращает фактический массив. Это значит, что значения генерируются в момент выполнения функции. Давайте посмотрим, как мы можем настроить массив, который генерируется, изменяя начальное значение.

Настройка начального значения с использованием диапазона NumPy

По умолчанию функция arange() в NumPy начинается с 0 и продолжается до указанного конечного значения (не включая его). Вы можете изменить начальное значение результирующего массива, передав значение в параметр

Давайте посмотрим, как мы можем создать массив, который идет от 5 до 9, используя функцию NumPy arange:

# Изменение начального значения при создании массивов с использованием функции NumPy arange()
import numpy as np

arr = np.arange(5, 10)
print(arr)

# Returns: [5 6 7 8 9]

Этот код создает одномерный массив с последовательностью чисел от 5 до 9 (включительно) с помощью функции np.arange().

В приведенном выше примере кода мы указали аргументы позиционно. Однако мы также можем использовать именованные аргументы, чтобы сделать наш код более явным:

# Изменение начального значения с использованием именованных аргументов
import numpy as np

arr = np.arange(start=5, stop=10)
print(arr)

# Returns: [5 6 7 8 9]

Этот код создает одномерный массив с последовательностью чисел от 5 до 9 (включительно) с использованием именованных аргументов start и stop функции np.arange().

В следующем разделе вы узнаете, как настроить шаговое значение, используемое при создании массивов.

Настройка значения шага с использованием диапазона NumPy

По умолчанию NumPy будет увеличивать значение массива на 1. Однако вы можете настроить это поведение, передав значение в параметр step=. Поскольку NumPy позволяет использовать типы данных для его диапазонов, мы можем создавать диапазоны, которые принимают значения с плавающей точкой.

Давайте создадим массив, значения которого начинаются с 0, заканчиваются на 10 и увеличиваются на 1,5:

# Создание массивов с разными значениями шага
import numpy as np

arr = np.arange(0, 10, 1.5)
print(arr)

# Returns: [0.  1.5 3.  4.5 6.  7.5 9. ]

Этот код создает одномерный массив с последовательностью чисел от 0 до 10 (не включая 10) с шагом 1.5 с помощью функции np.arange().

В приведенном выше коде мы объявили 0 (хотя это значение по умолчанию). Это необходимо, только если мы не укажем аргументы stop и step, используя ключевые аргументы. Давайте посмотрим, как это выглядит:

# Создание массивов с разными значениями шага с использованием именованных аргументов
import numpy as np

arr = np.arange(stop=10, step=1.5)
print(arr)

# Returns: [0.  1.5 3.  4.5 6.  7.5 9. ]

Этот код создает одномерный массив с последовательностью чисел от 0 до 10 (не включая 10) с шагом 1.5 с использованием именованных аргументов stop и step функции np.arange().

В следующем разделе мы рассмотрим различия между функцией range() в Python и функцией arange() в NumPy.

Различия между диапазоном NumPy и диапазоном Python()

На первый взгляд функции NumPy arange() и Python range() выполняют очень похожие задачи. Однако, между ними существует несколько заметных отличий. Давайте рассмотрим ключевые различия:

  • NumPy arange() генерирует массив, в то время как Python range() генерирует значения лениво. Значения в NumPy arange генерируются сразу, что может использовать больше памяти. Однако, если значения нужно получать несколько раз, это может быть более эффективно.

  • Функция NumPy arange() может работать с вещественными числами. Функция Python range() может работать только с целыми числами. Однако функция NumPy arange() может работать с различными числовыми типами данных.

  • Python range() работает быстрее при использовании в циклах for. Так как функция range() в Python генерирует элементы только по мере необходимости, ее можно использовать в циклах for для повышения эффективности.

Понимание этих ключевых различий позволяет вам принимать обоснованные решения относительно того, когда использовать ту или иную функцию.

Создание последовательностей в обратном направлении с помощью диапазона NumPy

Функция arange() в NumPy также позволяет вам использовать отрицательные значения шага. Это позволяет создавать последовательности чисел, двигаясь в обратном порядке. Это позволяет уменьшать значения в последовательности. Давайте посмотрим, как мы можем создать значения от 5 до 1, уменьшая на 1:

# Создание последовательности в обратном порядке с помощью функции NumPy arange()
import numpy as np

arr = np.arange(5, 0, -1)
print(arr)

# Returns: [5 4 3 2 1]

Этот код создает одномерный массив с последовательностью чисел от 5 до 1 (включительно) в обратном порядке с шагом -1 с помощью функции np.arange().

В следующем разделе вы узнаете, как настроить типы данных результирующих массивов.

Настройка типов данных в диапазоне NumPy

По умолчанию NumPy определяет тип данных создаваемого массива автоматически. В зависимости от типа заданных значений начала, конца или шага, NumPy решает, какой тип данных будет наилучшим выбором. Однако бывают случаи, когда необходимо явно указать, какой тип данных использовать.

NumPy предлагает ряд различных типов данных, таких как float и int. Чтобы узнать больше об этих типах данных, ознакомьтесь с официальной документацией здесь.

Давайте посмотрим, как NumPy будет определять типы данных на основе требований функции:

# Вывод данных с плавающей запятой
import numpy as np

arr = np.arange(0, 10, 1.5)
print(arr)

# Returns: [0.  1.5 3.  4.5 6.  7.5 9. ]

Этот код создает одномерный массив с последовательностью чисел от 0 до 10 (не включая 10) с шагом 1.5. Так как шаг явно указан как число с плавающей точкой, элементы массива будут иметь тип данных с плавающей точкой.

Если вы хотите указать конкретный тип данных, вы можете использовать параметр dtype=, чтобы задать нужный тип данных. Давайте посмотрим, как мы можем указать, что хотим использовать float16 в качестве типа данных:

# Указание типа данных при использовании функции NumPy arange()
import numpy as np

arr = np.arange(0, 10, 1.5, dtype='float16')
print(arr)

# Returns: [0.  1.5 3.  4.5 6.  7.5 9. ]

Этот код создает одномерный массив с последовательностью чисел от 0 до 10 (не включая 10) с шагом 1.5 и типом данных float16.

В следующем разделе вы научитесь создавать двумерные массивы с помощью функции arange библиотеки NumPy.

Создание двумерных массивов с помощью диапазона NumPy

По умолчанию NumPy создает одномерный массив при использовании функции arange(). Однако мы можем использовать метод .reshape() для создания массива любой размерности.

Давайте посмотрим, как мы можем это сделать, используя Python и NumPy:

# Создание двумерного массива с помощью функции NumPy arange()
import numpy as np

arr = np.arange(10).reshape(2, 5)
print(arr)

# Returns: 
# [[0 1 2 3 4]
#  [5 6 7 8 9]]

Этот код создает двумерный массив размером 2x5, заполненный последовательными числами от 0 до 9 с помощью функции np.arange() и метода reshape().

Это может быть расширено для создания массивов ещё более сложных размерностей.

Часто задаваемые вопросы

Что делает функция NumPy arange()?

Функция arange() в NumPy создает последовательный массив, позволяя указать начальное значение, конечное значение и шаг. По умолчанию NumPy начинает с 0 и увеличивает значения на 1.

Чем NumPy arange() отличается от Python range()?

Функция arange в библиотеке NumPy отличается от функции range в Python тремя основными характеристиками:

  1. Она создаёт массив, а не генерирует значения ленивым способом.

  2. Позволяет использовать различные типы данных (например, числа с плавающей точкой).

  3. Может работать медленнее при итерации с помощью цикла for.

Чем NumPy arange() отличается от NumPy linspace()?

Функция linspace в NumPy создает массив с равномерно расположенными элементами между двумя значениями, автоматически рассчитывая шаг. Функция arange в NumPy позволяет указать значение шага (вместо количества элементов).

Когда следует использовать NumPy arange() вместо Python range()?

The NumPy arange() function allows for the use of data types other than integers and generates an array upon execution of the function. However, it is also less memory-efficient compared to the range() function when reuse of elements is not required.

Заключение

В этом учебнике вы научились использовать функцию arange() библиотеки NumPy для генерации последовательности чисел. Сначала вы узнали, как работает функция и как ее можно настраивать с помощью различных параметров. Затем вы научились генерировать последовательности, указывая параметры начала, остановки и шага. После этого вы научились использовать функцию творчески для указания типов данных и создания 2D массивов.

Дополнительные ресурсы

Чтобы узнать больше о смежных темах, ознакомьтесь с нижеследующими руководствами:

Last updated