Пропустить до содержимого

Как использовать функцию range в Python?

[

NumPy arange(): Как использовать np.arange()

Введение в NumPy

NumPy – это основная библиотека Python для численных вычислений. Ее наиболее важным типом данных является массив, называемый ndarray. NumPy предлагает множество функций для создания массивов для различных задач. Одной из таких функций является arange(), основанная на числовых диапазонах. Ее часто называют np.arange(), потому что np является широко используемым сокращением для NumPy.

По окончании этой статьи вы узнаете:

  • Что такое np.arange()
  • Как использовать np.arange()
  • Какие другие функции похожи на np.arange()

Давайте посмотрим, как работает np.arange()!

Возвращаемое значение и параметры np.arange()

np.arange() - это одна из функций создания массива на основе числовых диапазонов. Она создает экземпляр ndarray со равномерно распределенными значениями и возвращает ссылку на него.

Чтобы определить интервал значений, содержащихся в массиве, промежуток между ними и их тип, используются четыре параметра arange():

numpy.arange([start, ]stop, [step, ], dtype=None) -> numpy.ndarray
  • start – число (целое или десятичное), определяющее первое значение в массиве.
  • stop – число, определяющее конец массива и не включенное в массив.
  • step – число, определяющее промежуток (разницу) между каждыми двумя последовательными значениями в массиве и по умолчанию равно 1.

step не может быть равен нулю, иначе возникнет ошибка ZeroDivisionError. Если инкремент или декремент равен 0, то невозможно продвинуться относительно значения start.

Если dtype не указан, NumPy сам выберет тип данных в зависимости от входных параметров.

Давайте посмотрим на примеры использования np.arange() и разберем каждый из параметров подробнее.

Пример 1: Определение интервала значений и промежутка

import numpy as np
a = np.arange(1, 10, 2)
print(a)

Output:

[1 3 5 7 9]

В этом примере мы создаем массив, начинающийся с числа 1 и заканчивающийся числом 10 (не включая его), с шагом 2. Полученный массив содержит все значения между 1 и 10 с шагом 2: [1, 3, 5, 7, 9].

Пример 2: Определение интервала с указанием одного параметра

import numpy as np
b = np.arange(5)
print(b)

Output:

[0 1 2 3 4]

В этом примере мы создаем массив с использованием только одного параметра stop. Значение start по умолчанию равно 0, а step равно 1. Таким образом, получается массив [0, 1, 2, 3, 4].

Пример 3: Определение интервала с отрицательными значениями

import numpy as np
c = np.arange(5, -5, -1)
print(c)

Output:

[ 5 4 3 2 1 0 -1 -2 -3 -4]

В этом примере мы создаем массив, начинающийся с числа 5 и заканчивающийся числом -5 (не включая его), с шагом -1. Полученный массив содержит все значения от 5 до -5 с шагом -1: [5, 4, 3, 2, 1, 0, -1, -2, -3, -4].

Пример 4: Определение интервала с дробными значениями

import numpy as np
d = np.arange(0.5, 2.5, 0.5)
print(d)

Output:

[0.5 1. 1.5 2. ]

В этом примере мы создаем массив с дробными значениями. Массив начинается с числа 0.5 и заканчивается числом 2.5 (не включая его), с шагом 0.5. Полученный массив содержит все значения от 0.5 до 2 с шагом 0.5: [0.5, 1, 1.5, 2].

Пример 5: Определение типа данных массива

import numpy as np
e = np.arange(1, 6, dtype=float)
print(e)

Output:

[1. 2. 3. 4. 5.]

В этом примере мы создаем массив со значениями с 1 до 6 (не включая 6) с шагом 1 и указываем тип данных float. Полученный массив содержит значения типа float: [1., 2., 3., 4., 5.].

Работа с массивами np.arange()

np.arange() позволяет создавать массивы с различными интервалами и шагами. Вы можете использовать эти массивы для решения различных задач в Python, таких как обработка данных, математические вычисления, построение графиков и многое другое.

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

Сравнение range и np.arange()

Python включает в себя встроенный класс range для создания числовых последовательностей. Однако для более гибкого использования числовых диапазонов рекомендуется использовать np.arange(), поскольку она предлагает больше возможностей и приемуществ по сравнению с range.

Одно из основных преимуществ np.arange() заключается в том, что она позволяет работать с дробными числами и выбирать шаг более точно, а также указывать тип данных элементов массива.

Кроме того, np.arange() позволяет создавать массивы с отрицательными шагами и задавать диапазоны значений неограниченной длины.

Давайте сравним два подхода на примере:

import numpy as np
# Использование range
a = range(1, 10, 2)
print(list(a))
# Использование np.arange
b = np.arange(1, 10, 2)
print(b)

Вывод:

[1, 3, 5, 7, 9]
[1 3 5 7 9]

Обратите внимание, что при использовании range результат должен быть преобразован в список с помощью функции list(). В то же время np.arange() возвращает массив ndarray без необходимости вызывать дополнительные функции.

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

Примеры использования np.arange()

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

Пример 1: Генерация последовательности чисел для построения графика

import numpy as np
import matplotlib.pyplot as plt
# Создаем массив с шагом 0.1 от 0 до 2π
x = np.arange(0, 2 * np.pi, 0.1)
# Вычисляем значение функции sin для каждого элемента массива
y = np.sin(x)
# Строим график
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.title('График функции sin(x)')
plt.show()

Output:

В этом примере мы используем np.arange() для создания массива значений X от 0 до 2π с шагом 0.1. Затем мы вычисляем значение функции sin для каждого элемента массива и строим график.

Пример 2: Фильтрация данных массива

import numpy as np
# Создаем массив с данными
data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# Фильтруем данные, оставляя только четные числа
filtered_data = data[np.arange(len(data)) % 2 == 0]
print(filtered_data)

Output:

[1 3 5 7 9]

В этом примере массив data содержит числа от 1 до 10. Мы используем np.arange(len(data)) для создания массива индексов, а затем применяем фильтр, чтобы оставить только те элементы, индексы которых являются четными числами. В результате оставлены только числа [1, 3, 5, 7, 9].

Пример 3: Генерация данных для машинного обучения

import numpy as np
# Генерируем случайные данные для машинного обучения
X = np.random.randn(1000, 10)
y = np.random.randint(0, 2, 1000)
# Обучаем модель на сгенерированных данных
model.fit(X, y)

В этом примере мы используем np.arange() для создания массива случайных данных размером 1000 × 10. Затем мы создаем массив меток y, используя функцию np.random.randint() для генерации случайных целых чисел из диапазона 0 и 1. Наконец, мы обучаем модель машинного обучения с использованием сгенерированных данных.

Заключение

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

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

Ознакомившись с основными возможностями и преимуществами np.arange(), вы сможете использовать эту функцию эффективно в своих собственных проектах на Python.