Один из наиболее распространенных шагов в научном анализе и визуализации данных - это создание числовых интервалов. В этом контексте NumPy, библиотека Python для научных вычислений, предоставляет инструмент под названием np.linspace()
.
Функция np.linspace()
создает одномерный массив из равномерно распределенных значений в заданном диапазоне. Отличие от np.arange()
заключается в том, что вместо задания шага вы задаете число элементов.
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
start
: Начальное значение диапазона.stop
: Конечное значение диапазона.num
: Количество равномерно распределенных образцов в диапазоне. По умолчанию 50.endpoint
: Если True
(по умолчанию), stop
является последним значением в диапазоне.retstep
: Если True
, возвращает выборки и шаг между образцами.dtype
: Тип данных выводимого массива.axis
: Ось в результирующем массиве вдоль которой будет работать linspace()
.Пример 1: Простая последовательность
Давайте создадим последовательность из 10 чисел, равномерно распределенных между 0 и 1.
import numpy as np
sequence = np.linspace(0, 1, 10)
print(sequence)
# [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556
0.66666667 0.77777778 0.88888889 1. ]
Пример 2: Последовательность без конечного значения
Создание последовательности из 10 чисел, начиная с 0 и заканчивая числом, ближайшим к 1, но не включая его.
sequence_no_endpoint = np.linspace(0, 1, 10, endpoint=False)
print(sequence_no_endpoint)
# [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
Пример 3: Получение значения шага
Если вам нужно знать расстояние между соседними значениями, вы можете получить его с помощью параметра retstep
.
import numpy as np
sequence_with_step = np.linspace(0, 1, 10, retstep=True)
print(sequence_with_step)
# (array([0. , 0.11111111, 0.22222222, 0.33333333, 0.44444444,
# 0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ]), 0.1111111111111111)
Пример 4: Создание нелинейных последовательностей
Хотя np.linspace()
создает линейные последовательности, его можно комбинировать с другими функциями для получения нелинейных последовательностей.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title("Синусоидальная кривая")
plt.xlabel("X")
plt.ylabel("sin(X)")
plt.show()
Этот пример демонстрирует создание синусоидальной кривой с использованием np.linspace()
для генерации значений X
.
np.linspace()
, когда знаете, сколько точек вам нужно: В отличие от np.arange()
, где вы задаете шаг между значениями, с np.linspace()
вы указываете общее количество точек, которое хотите получить.np.linspace()
, могут подвергаться небольшому округлению. Всегда проверяйте результаты, особенно если точность критически важна для вашей задачи.Хотя и np.linspace()
, и np.arange()
создают последовательности, они имеют разные фокусы:
np.linspace()
: фокусируется на количестве элементов. Вы определяете начало и конец диапазона, а также сколько точек вы хотите между этими конечными точками.np.arange()
: фокусируется на шаге между значениями. Вы определяете начало, конец и шаг между значениями.np.linspace()
и np.arange()
. Важно помнить, что в np.linspace()
третий аргумент - это количество точек, а не шаг.np.linspace()
по умолчанию возвращает числа с плавающей точкой. Если вам нужны целые числа, убедитесь, что вы задали правильный тип данных с помощью параметра dtype
.np.linspace()
— это универсальный инструмент в мире научных вычислений на Python. С его помощью можно легко и быстро создавать числовые последовательности для анализа, визуализации и моделирования. С надежным пониманием этой функции и ее возможностей вы значительно расширите свой арсенал инструментов для работы с данными.
Содержание: