Spec-Zone.ru › NumPy 2.0

numpy.ma.arange

ma.arange([start, ]stop, [step, ]dtype=None, *, device=None, like=None)=<numpy.ma.core._convert2ma object>

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

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целое или вещественное число, необязательно

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

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

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

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

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

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

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

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

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

Новое в версии 2.0.0.

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

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

Новое в версии 1.20.0.

Returns:
arangeMaskedArray

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

Для аргументов с плавающей точкой длина результата равна 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.ma.arange.html

Spec-Zone.ru

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