Как использовать numpy arange?
Как использовать np.arange() в NumPy
NumPy - это фундаментальная библиотека Python для численных вычислений. Ее наиболее важным типом является тип массива, называемый ndarray
. NumPy предлагает множество функций для создания массивов для различных ситуаций. Одной из таких функций является arange()
, основанная на числовых диапазонах. Часто она называется np.arange()
, потому что np
- широко используемое сокращение для NumPy.
Создание массивов NumPy важно при работе с другими библиотеками Python, которые на них полагаются, такими как SciPy, Pandas, Matplotlib, scikit-learn и другими. NumPy подходит для создания и работы с массивами, потому что предлагает полезные функции, увеличивает производительность и позволяет писать лаконичный код.
В конце этой статьи вы узнаете:
- Что такое
np.arange()
- Как использовать
np.arange()
- Как
np.arange()
сравнивается с встроенным в Python классомrange
- Какие другие функции подобны
np.arange()
Давайте посмотрим на np.arange()
в действии!
Возвращаемое значение и параметры np.arange()
numpy.arange()
- это одна из функций создания массивов на основе числовых диапазонов. Она создает экземпляр ndarray
с равномерно распределенными значениями и возвращает ссылку на него.
Вы можете определить интервал значений, пробел между ними и их тип с помощью четырех параметров arange()
:
Первые три параметра определяют диапазон значений, а четвертый - тип элементов:
start
- это число (целое или десятичное), которое определяет первое значение в массиве.stop
- число, которое определяет конец массива и не включается в массив.step
- число, которое определяет шаг (разницу) между каждыми двумя последовательными значениями в массиве и по умолчанию равно1
.dtype
- тип элементов выходного массива и используется по умолчанию, если не указан.
step
не может быть нулем. В противном случае возникнет ZeroDivisionError
. Если шаг равен нулю, не получится перемещаться от значения start
.
Если dtype
опущен, arange()
вернет массив с элементами типа float64
.
Давайте рассмотрим примеры использования np.arange()
для более подробного понимания.
Аргументы числового диапазона в np.arange()
np.arange()
позволяет задавать разные аргументы числового диапазона для создания массива.
Предоставление всех аргументов числового диапазона
Если вы хотите задать все аргументы числового диапазона: начальное значение (start
), конечное значение (stop
) и шаг (step
), вы можете сделать это следующим образом:
В этом примере мы создали массив, начиная с 1, до конечного значения 10 (не включительно), с шагом 2. Получившийся массив содержит значения [1, 3, 5, 7, 9]
.
Предоставление двух аргументов числового диапазона
Если вам нужно указать только начальное значение (start
) и конечное значение (stop
), а шаг (step
) не указывать, то по умолчанию он будет равен 1:
В этом примере мы создали массив, начиная с 1 и заканчивая 9 (не включительно), с шагом по умолчанию - 1. Получившийся массив содержит значения [1, 2, 3, 4, 5, 6, 7, 8, 9]
.
Предоставление одного аргумента числового диапазона
Если вам нужно указать только конечное значение (stop
), а начальное значение (start
) и шаг (step
) не указывать, то по умолчанию начальное значение будет равно 0, а шаг - 1:
В этом примере мы создали массив, начиная с 0 и заканчивая 5 (не включительно), с шагом по умолчанию - 1. Получившийся массив содержит значения [0, 1, 2, 3, 4]
.
Предоставление отрицательных аргументов числового диапазона
Вы можете также использовать отрицательные значения для аргументов числового диапазона. Например, если вы хотите создать массив в обратном порядке, вы можете указать отрицательный шаг:
В этом примере мы создали массив, начиная с 10 и заканчивая 0 (не включительно), с отрицательным шагом -1. Получившийся массив содержит значения [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
.
Подсчет в обратном порядке
Если вам нужно создать массив, идущий в обратном порядке от высокого значения к низкому, вы можете использовать отрицательный шаг:
В этом примере мы создали массив, начиная с 10 и заканчивая 1 (не включительно), с отрицательным шагом -1. Получившийся массив содержит значения [10, 9, 8, 7, 6, 5, 4, 3, 2]
.
Получение пустых массивов
Если начальное значение (start
) больше или равно конечному значению (stop
), то функция np.arange()
вернет пустой массив:
В этом примере мы пытались создать массив, начиная с 5 и заканчивая 3 (не включительно), но так как начальное значение больше или равно конечному значению, функция вернула пустой массив.
Типы данных np.arange()
По умолчанию, тип элементов возвращаемого массива np.arange()
будет целочисленным. Однако, в зависимости от ваших нужд, вы можете изменить тип элементов, указав параметр dtype
:
В этом примере мы создали массив с типом элементов float64
, начиная с 1 и заканчивая 10 (не включительно), с шагом 2. Получившийся массив содержит значения [1.0, 3.0, 5.0, 7.0, 9.0]
.
Превышение простых диапазонов с np.arange()
np.arange()
позволяет создавать более сложные числовые диапазоны при помощи математических выражений. Например, вы можете использовать арифметические операции и функции NumPy для создания массивов с нужными значениями:
В первом примере мы создали массив, начиная с 1 и заканчивая 10 (не включительно), с шагом, который увеличивается в 2 раза от предыдущего значения [1, 2, 4, 8, 16]
.
Во втором примере мы использовали функцию np.sin()
из NumPy для создания массива, представляющего электрическую нагрузку для каждого дня за 10 лет. Мы использовали арифметические операции и математические функции для создания сложного числового диапазона.
Сравнение range
и np.arange()
При работе с числовыми диапазонами в Python, у вас есть выбор между встроенным классом range
и функцией np.arange()
. Вот несколько аспектов сравнения этих двух подходов:
Параметры и вывод
Класс range
принимает три аргумента: start
, stop
и step
. Он возвращает объект класса range
, который представляет целочисленные значения в заданном диапазоне.
Функция np.arange()
принимает те же три аргумента, а также четвертый аргумент dtype
, который определяет тип данных элементов возвращаемого массива. Она возвращает массив типа ndarray
, содержащий значения заданного диапазона.
Создание последовательностей
range
и np.arange()
могут быть использованы для создания последовательностей в Python. Однако, np.arange()
шире используется для создания массивов с числовыми значениями, в то время как range
в основном используется для итераций в циклах for
.
Циклы for
в Python
Класс range
является основой для работы циклов for
в Python. Вы можете использовать объект класса range
в конструкции цикла for
для выполнения итераций в заданном диапазоне.
Функция np.arange()
возвращает массив типа ndarray
, который может быть использован в циклах for
, но его основное предназначение - создание массивов с числовыми данными.
Другие функции на основе числовых диапазонов
Кроме np.arange()
, NumPy предлагает и другие функции на основе числовых диапазонов. Некоторые из них:
np.linspace()
: создает равномерно распределенные значения в заданном диапазонеnp.logspace()
: создает значения, равномерно распределенные в логарифмической шкалеnp.geomspace()
: создает значения, равномерно распределенные в геометрической шкале
Если вам нужно создать массив со значениями, которые не могут быть получены с помощью np.arange()
, обратитесь к документации NumPy для ознакомления с другими функциями создания массивов на основе числовых диапазонов.
Быстрое резюме
В этой статье вы узнали, как использовать np.arange()
для создания массивов на основе числовых диапазонов в NumPy. Вы изучили различные аргументы числового диапазона и типы данных, а также сравнили range
и np.arange()
.
Вам предоставлено множество примеров кода, чтобы вы могли легко применить эти знания в своих проектах. Теперь вы готовы использовать np.arange()
для создания массивов с нужными числовыми значениями.
Заключение
NumPy предоставляет мощные инструменты для работы с массивами на основе числовых диапазонов. Используя функцию np.arange()
, вы можете создавать массивы сразу с нужными числовыми значениями. Это делает ваш код более читабельным и эффективным.
Не ограничивайтесь только np.arange()
- изучите и другие функции создания массивов на основе числовых диапазонов в NumPy, чтобы воспользоваться всеми возможностями этой мощной библиотеки.