Рубрики
Без рубрики

Python – numpy.linspace ()

Будучи генератором последовательности, функция numpy.linspace () используется для генерации последовательности чисел в линейном пространстве с равномерным размером шага. Осевать

Автор оригинала: Pankaj Kumar.

Быть генератором последовательности, numpy.linspace () Функция используется для генерации последовательности чисел в линейном пространстве с равномерным размером шага.

Numpy вообще может генерировать последовательности, используя numpy.arange () Но когда мы используем аргументы с плавающей точкой, он может привести к потере точности, что может вызвать непредсказуемый выход.

Чтобы избежать потенциальной потери точности из-за точной точки с плавающей точкой, Numpy предоставляет нам отдельную последовательность генератора в numpy.linspace () , который является предпочтительным вариантом, если вы уже знаете количество необходимых элементов. Но вы обычно получаете тот же выход, используя оба Linspace () и Arange () При соответствующих параметрах, поэтому оба могут быть выбраны для одной и той же задачи.

Например, следующие кодовые участки 2 линейных последовательностей от 0 до 10 с использованием numpy.linspace () Чтобы показать, что при создании последовательности существует однородность.

import numpy as np
import matplotlib.pyplot as plt

y = np.zeros(5)
x1 = np.linspace(0, 10, 5)
x2 = np.linspace(0, 10, 5)
plt.plot(x1, y, 'o')
plt.plot(x2, y + 0.5, 'o')
plt.ylim([-0.5, 1])
plt.show()

Выход :

Синтаксис

Формат: array.linspace (начать, конец,) будет генерировать единую последовательность между Начать и конец , с num_points общих элементов.

Здесь,

  • Начать -> Начальная точка (включена) диапазона
  • конец -> Конечная точка (включая) диапазона
  • Num -> Общее количество точек в последовательности

Давайте понять это, используя пару примеров:

import numpy as np

a = np.linspace(0.02, 2, 10)

print('Linear Sequence from 0.02 to 2:', a)
print('Length:', len(a))

Выход

Linear Sequence from 0.02 to 2: [0.02 0.24 0.46 0.68 0.9  1.12 1.34 1.56 1.78 2.  ]
Length: 10

Вышеуказанный фрагмент генерирует равномерную последовательность от 0,02 до 2, имея 10 элементов в нем.

Аргумент ключевого слова конечной точки

Если вы не хотите включить последнюю точку в расчетах последовательности, есть другой аргумент ключевых слов конечная точка , который можно установить на Ложь Отказ (Это верно по умолчанию)

import numpy as np

a = np.linspace(0.02, 2, 10, endpoint=False)

print('Linear Sequence from 0.02 to 2:', a)
print('Length:', len(a))

Выход

Linear Sequence from 0.02 to 2: [0.02  0.218 0.416 0.614 0.812 1.01  1.208 1.406 1.604 1.802]
Length: 10

Как вы можете наблюдать, последний точку (2) не был включен в последовательность, поэтому размер шага также отличается, который теперь будет генерировать совершенно другую последовательность.

Аргумент ключевого слова RetStep

Это булевой необязательный аргумент, если указан, также возвращает размер шага наряду с массивом последовательности, что приведет к кортежу в качестве вывода.

import numpy as np

a = np.linspace(0.02, 2, 10, retstep=True)

print('Linear Sequence from 0.02 to 2:', a)
print('Length:', len(a))

Выход

Linear Sequence from 0.02 to 2: (array([0.02, 0.24, 0.46, 0.68, 0.9 , 1.12, 1.34, 1.56, 1.78, 2.  ]), 0.22)
Length: 2

Поскольку вывод – кортеж, это длина 2, а не 10!

Аргумент ключевого слова оси

Это устанавливает ось в результате для хранения образцов. Он используется только в том случае, если начало и конечные точки имеют таблицы массива.

По умолчанию ( Axis = 0 ), образцы будут вдоль новой оси, вставленной в начале. Мы можем использовать Axis = -1 получить ось в конце.

import numpy as np

p = np.array([[1, 2], [3, 4]])
q = np.array([[5, 6], [7, 8]])

r = np.linspace(p, q, 3, axis=0)
print(r)
s = np.linspace(p, q, 3, axis=1)
print(s)

Выход

array([[[1., 2.],
        [3., 4.]],

       [[3., 4.],
        [5., 6.]],

       [[5., 6.],
        [7., 8.]]])

array([[[1., 2.],
        [3., 4.],
        [5., 6.]],

       [[3., 4.],
        [5., 6.],
        [7., 8.]]])

В первом случае, поскольку Ось Мы принимаем ограничения последовательностей с первой оси.

Здесь пределы являются пары подлокотника [1, 2] и [5,6] , а также [3, 4] и [7,8] , принимая элементы с первой оси P и Q Отказ Теперь сравниваем соответствующие элементы из полученной пары для создания последовательностей.

Так что последовательности являются [[1-5], [2-6]] Для первого ряда и [[3-7], [4-8]] , для второй пары (строка), которая оценивается и объединена для формирования [[[1, 2], [3, 4]], [[3, 4], [5, 6]], [[5, 6], [7,8]]] ,

Второй случай вставит новые элементы в ось = 1 или колонны. Таким образом, новая ось будет создана через последовательности столбцов. вместо строки последовательностей.

Последовательности [1, 2] на [5, 7] и [3, 4] на [7, 8] рассматриваются и вставлены в столбцы результата, что привело к [[[1, 2], [3, 4], [5, 6]], [[3, 4], [5, 6], [7, 8]]] Отказ

Рекомендации