Автор оригинала: Pankaj Kumar.
Вступление
В этом уроке мы обсудим метод Numpy arange()
в Python. NumPy – очень популярный модуль в Python , в основном используемый пользователями для повышения производительности и надежности кода. Он обеспечивает векторизованный подход к программированию на Python и даже делает код более кратким и легким для чтения.
Основы метода Numpy arange()
В принципе, метод arange()
в модуле NumPy в Python используется для генерации линейной последовательности чисел на основе заранее заданных начальных и конечных точек вместе с постоянным размером шага.
Синтаксис,
import numpy as np np.arange( start , stop , step ,dtype=nome)
Здесь,
start
– это начальная точка будущей сгенерированной последовательности. Последовательность начинается с этого числа,stop
– это предел, до которого должна быть сгенерирована последовательность. Обратите внимание, что stop не включен в саму последовательность, только число до того, как оно будет рассмотреношаг
– это равномерный размер шага. По умолчанию, если в качестве шага ничего не передается, интерпретатор считает шаги равными единице(1). Помните, что размер шага должен быть некоторым ненулевым значением, иначе возникнетZeroDivisionError
.тип
– это тип результирующих элементов ndarray . По умолчанию он выводит тип из предоставленных параметров внутри метода. Тип может быть none, int или float и т. Д.
Пример Numpy arange()
Давайте разберемся в работе метода Numpy arange()
на примере:
import numpy as np #passing start=1, stop=10, and step=2 and dtype=int res=np.arange(1,10,2,int) #printing the result print("The resultant sequence is : ",res) #analysing the type of the result print("Type of returned result is:",type(res))
Вывод :
Здесь,
- Мы изначально импортировали модуль NumPy как
np
для дальнейшего использования, - Затем мы используем метод
arrange ()
, передавая соответствующие аргументы start , stop , step и type как 1, 10, 2 и int для создания массива, состоящего из целых чисел от 1 до 9 с. - Когда мы печатаем результирующую последовательность вместе с
type()
возвращаемого объекта, который оказывается членом классаndarray
.
Использование Numpy arange() в Python
Метод arrange() принимает четыре аргумента start, stop, step и тип, как мы видели в предыдущем разделе. Теперь мы посмотрим, как мы можем использовать этот метод различными способами и как он работает для всех случаев.
1. Использование функции arrange() с одним аргументом
Когда мы передаем только один параметр методу Numpy arange (), по умолчанию он считает значение аргументом stop . Взгляните на приведенный ниже пример кода,
import numpy as np #passing only one parameter to the arange() method res=np.arange(5) #printing the result print("The resultant sequence with one argument : ",res) #analysing the type of the result print("Type of returned result is:",type(res))
Выход:
The resultant sequence with one argument : [0 1 2 3 4] Type of returned result is:
Здесь,
- Как мы уже упоминали ранее, мы изначально импортируем модуль
numpy
как np, - После этого мы пытаемся сгенерировать последовательность и сохранить ее в
res
, имея только один параметр , и это’ 5 ‘, - Мы наблюдаем, что программа рассматривает переданное значение как остановку или конечную точку. И создает массив со значениями
[0 1 2 3 4]
, - Снова мы подтверждаем тип() результата как ndarray.
2. Использование Numpy arange() без шага
Когда параметр step не передается методу arrange()
в Python, по умолчанию он считает, что он имеет значение 1 . Давайте рассмотрим пример,
import numpy as np #passing start=5 and stop=8 to arange() res=np.arange(5,8) #printing the result print("The resultant sequence with no step :",res) #analysing the type of the result print("Type of returned result is:",type(res))
Вывод :
The resultant sequence with no step : [5 6 7] Type of returned result is:
Итак, здесь мы ясно видим, что, хотя мы не передали параметр step, созданный массив состоит из значений [5 6 7]. То есть, в данном случае, значение по умолчанию 1 был использован для генерации соответствующего вывода.
3. Использование функции arrange() с отрицательными параметрами
Итак, что делать, если значения, переданные методу arrange (), являются отрицательными ? Он работает нормально.
Если начальная и конечная точки отрицательные , метод генерирует последовательность таким же образом, как и для положительных значений. Он начинается с начала и продолжает процесс, увеличивая его с предоставленным положительным шагом.
Примечание : Если указанный шаг отрицательный, то единственной разницей будет часть приращения. В этом случае шаг будет добавлен, но поскольку значение шага отрицательное, в конечном итоге сгенерированный массив будет убывающим .
Давайте рассмотрим пример, в котором мы передаем отрицательные начальные и конечные значения.
import numpy as np #passing start=-10, stop=-1 and step=3 to arange() res=np.arange(-10,-1,3) #printing the result print("The resultant sequence with negative start and stop :",res) #analysing the type of the result print("Type of returned result is:",type(res))
Вывод :
The resultant sequence with negative start and stop : [-10 -7 -4] Type of returned result is:
Как обсуждалось выше, метод arrange()
генерирует массив, состоящий из элементов [-10 -7 -4] , поскольку предоставленные параметры запуска и остановки были ( -10 ) и ( -1 ), с шагом= 3 .
4. Использование Numpy arange() с циклами Python
В приведенном ниже примере мы включили метод arrange() в собственный цикл for в Python .
import numpy as np #to print all even numbers from 2 to nth even number, where n is user input #user input n=int(input("Enter the last even number: ")) print("The sequence of even numbers :") for i in np.arange(2,n+2,2): #here stop=n+2 so that the nth even number is too printed print(i, end=" ")
Вывод :
В приведенном выше коде,
- Метод
arrange()
выдает тот же результат, что и встроенный методrange ()
. Здесь мы пытаемся напечатать все четные числа от 2 до последнего, предоставленного пользователем. np.arange(2,n+2,2)
дает нам последовательность, содержащую все числа, начиная с 2 to n .- Как мы видели ранее, метод arrange() не включает в себя значение stop или end. Таким образом, чтобы преодолеть эту ситуацию и вывести последнее предоставленное пользователем четное значение, мы рассматриваем параметр stop как (n+2) с шагом |/=2 .
Несмотря на то, что мы использовали метод arrange()
с собственным циклом for в Python, это влияет на скорость выполнения и производительность кода. Он также становится медленным.
Numpy arange() Vs range() в Python
Модуль NumPy предоставляет нам некоторые действительно полезные и, что более важно, более быстрые методы. В случае генерации линейной последовательности метод Numpy arange()
превосходит встроенный метод range()
с точки зрения производительности и скорости, хотя оба они выполняют одну и ту же задачу. Это связано с тем, что модуль numpy использует векторизованный код.
Вывод
Мы узнали о методе arranged()
из модуля NumPy , как он работает, а также о том, что он быстрее и лучше, чем собственный метод range()
в Python.