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