Spec-Zone.ru › NumPy 2.0

numpy.arange

numpy.arange([start, ]stop, [step, ]dtype=None, *, device=None, like=None)

Возвращает равномерно распределенные значения в заданном интервале.

arange можно вызвать с различным количеством позиционных аргументов:

  • arange(stop): Значения генерируются в полуоткрытом интервале [0, stop) (другими словами, интервал включает start но не включает stop).
  • arange(start, stop): Значения генерируются в полуоткрытом интервале [start, stop).
  • arange(start, stop, step) Значения генерируются в полуоткрытом интервале [start, stop), с интервалом между значениями, заданным step.

Для целочисленных аргументов функция примерно эквивалентна встроенной функции Python range, но возвращает массив ndarray, а не объект range.

При использовании нецелочисленного шага, например, 0,1, часто лучше использовать numpy.linspace.

См. разделы "Предупреждение" ниже для получения дополнительной информации.

Parameters:
startцелое или вещественное число, необязательно

Начало интервала. Интервал включает это значение. Значение по умолчанию для начала — 0.

stopцелое или вещественное число

Конец интервала. Интервал не включает это значение, за исключением некоторых случаев, когда step не является целым числом и погрешность с плавающей точкой влияет на длину out.

stepцелое или вещественное число, необязательно

Интервал между значениями. Для любого выходного out, это расстояние между двумя смежными значениями, out[i+1] - out[i]. Значение шага по умолчанию — 1. Если step задано в качестве позиционного аргумента, также необходимо указать start.

dtypedtype, необязательно

Тип выходного массива. Если dtype не задан, тип данных выводится из других входных аргументов.

deviceстрока, необязательно

Устройство, на котором следует разместить созданный массив. Значение по умолчанию: None. Только для совместимости с API массивов, поэтому должен быть "cpu" если передан.

В версии 2.0.0.

likearray_like, необязательно

Объект-ссылка для создания массивов, которые не являются массивами NumPy. Если в качестве like передан массив-подобный объект, поддерживающий протокол __array_function__, результат будет определяться им. В этом случае гарантируется создание объекта массива, совместимого с переданным через этот аргумент.

В версии 1.20.0.

Returns:
arangendarray

Массив равномерно распределенных значений.

Для аргументов с плавающей точкой длина результата — ceil((stop - start)/step). Из-за переполнения с плавающей точкой это правило может привести к тому, что последнее значение массива out будет больше stop.

Предупреждение

Длина выходных данных может быть числово неустойчивой.

Другая проблема устойчивости связана с внутренней реализацией numpy.arange. Фактическое значение шага, используемого для заполнения массива, — dtype(start + step) - dtype(start) , а не step. Здесь может произойти потеря точности из-за приведения типов или из-за использования чисел с плавающей точкой, когда start намного больше, чем step. Это может привести к неожиданному поведению. Например:

>>> np.arange(0, 5, 0.5, dtype=int)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
>>> np.arange(-3, 3, 0.5, dtype=int)
array([-3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8])

В таких случаях следует предпочесть использование numpy.linspace.

Встроенная функция range генерирует встроенные целые числа Python произвольного размера, в то время как numpy.arange производит numpy.int32 или numpy.int64 числа. Это может привести к неправильным результатам для больших целых значений:

>>> power = 40
>>> modulo = 10000
>>> x1 = [(n ** power) % modulo for n in range(8)]
>>> x2 = [(n ** power) % modulo for n in np.arange(8)]
>>> print(x1)
[0, 1, 7776, 8801, 6176, 625, 6576, 4001]  # correct
>>> print(x2)
[0, 1, 7776, 7185, 0, 5969, 4816, 3361]  # incorrect

См. также

numpy.linspace

Равномерно распределенные числа с внимательным учетом конечных точек.

numpy.ogrid

Массивы равномерно распределенных чисел в N-мерном пространстве.

numpy.mgrid

Массивы с сетчатой структурой равномерно распределенных чисел в N-мерном пространстве.

Как создать массивы с равномерно распределенными значениями

Примеры

>>> np.arange(3)
array([0, 1, 2])
>>> np.arange(3.0)
array([ 0.,  1.,  2.])
>>> np.arange(3,7)
array([3, 4, 5, 6])
>>> np.arange(3,7,2)
array([3, 5])

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.arange.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API