NumPy logspace: Понимание функции np.logspace()

В этом руководстве вы научитесь использовать функцию NumPy logspace и как использовать её различные параметры. Функция np.logspace() используется для возвращения чисел, которые равномерно распределены на логарифмической шкале. Функция позволяет вам указать множество различных атрибутов, включая изменение основания логарифмической шкалы, которую вы хотите использовать.

К концу этого урока вы узнаете:

  • Что такое функция np.logspace() и как ее использовать

  • Как изменить функцию np.logspace(), используя множество различных параметров

  • Как использовать функцию np.logspace() для создания визуализаций с помощью Matplotlib

Оглавление

Что такое функция пространства журнала NumPy?

Функция np.logspace() используется для генерации ряда чисел, равномерно распределенных на логарифмической шкале. Это может быть очень полезно, когда вам нужно создать диапазоны значений. Хотя вы можете изменить основание функции, по умолчанию в функции np.logspace() используется основание десять.

Прежде чем углубляться в примеры, давайте взглянем на параметры функции np.logspace():

# The Parameters of the np.logspace() Function:
import numpy as np

np.logspace(
    start, 
    stop, 
    num=50, 
    endpoint=True, 
    base=10.0, 
    dtype=None, 
    axis=0
)

Давайте разберем параметры функции, объяснив, что делает каждый параметр:

ПараметрЗначение по умолчаниюОписание

start=

N/A

Начальное значение последовательности, например 10 start.

stop=

N/A

Окончательное значение последовательности, если только конечная точка не имеет значения endpoint=False

num=

50

Количество выборок для генерации

endpoint=

True

Если установлено значение True, включается последняя выборка. В противном случае не включайте.

base=

10.0

Основание пространства журнала.

dtype=

N/A

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

axis=

0

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

Чтобы лучше понять, как это выглядит, давайте рассмотрим пример:

# An Example of the np.logspace() Function
import numpy as np
print(np.logspace(start=1, stop=10))

# Returns:
# [1.00000000e+01 1.52641797e+01 2.32995181e+01 3.55648031e+01
#  5.42867544e+01 8.28642773e+01 1.26485522e+02 1.93069773e+02
#  2.94705170e+02 4.49843267e+02 6.86648845e+02 1.04811313e+03
#  1.59985872e+03 2.44205309e+03 3.72759372e+03 5.68986603e+03
#  8.68511374e+03 1.32571137e+04 2.02358965e+04 3.08884360e+04
#  4.71486636e+04 7.19685673e+04 1.09854114e+05 1.67683294e+05
#  2.55954792e+05 3.90693994e+05 5.96362332e+05 9.10298178e+05
#  1.38949549e+06 2.12095089e+06 3.23745754e+06 4.94171336e+06
#  7.54312006e+06 1.15139540e+07 1.75751062e+07 2.68269580e+07
#  4.09491506e+07 6.25055193e+07 9.54095476e+07 1.45634848e+08
#  2.22299648e+08 3.39322177e+08 5.17947468e+08 7.90604321e+08
#  1.20679264e+09 1.84206997e+09 2.81176870e+09 4.29193426e+09
#  6.55128557e+09 1.00000000e+10]

Мы видим, что функция возвращает 50 значений, равномерно распределенных от 10^1 до 10^10. В следующем разделе вы узнаете, как указать количество значений в функции NumPy logspace.

Указание количества значений в функции пространства журнала NumPy

Часто возникает необходимость указать количество значений в вашем диапазоне. В случае функции np.logspace(), вы можете изменить это, используя аргумент num=. Давайте посмотрим, как мы можем воспроизвести наш предыдущий пример, но возвратить только десять значений:

# Modifying the Number of Values Returned
import numpy as np
print(np.logspace(start=1, stop=10, num=10))

# Returns:
# [1.e+01 1.e+02 1.e+03 1.e+04 1.e+05 1.e+06 1.e+07 1.e+08 1.e+09 1.e+10]

В коде выше мы указываем:

  • База по умолчанию 10

  • Начальное и конечное значения 1 и 10.

  • 10 значений в нашем диапазоне

Из-за этого мы возвращаем значения 101, 102,… 1010.

Изменение базы значений в функции пространства журналов NumPy

По умолчанию функция logspace в NumPy использует основание десять, что означает, что каждое значение в линейном пространстве от start до stop является степенью, возведенной в основание 10. Однако в некоторых случаях вам может потребоваться изменить основание возвращаемых значений.

Функция logspace в NumPy позволяет изменять основание логарифмической шкалы с помощью аргумента base=. Давайте рассмотрим, как можно изменить основание нашего диапазона на 2:

# Modifying the Base of the logspace() Function
import numpy as np
print(np.logspace(start=1, stop=10, num=10, base=2))

# Returns:
# [   2.    4.    8.   16.   32.   64.  128.  256.  512. 1024.]

В приведенном выше примере мы возводили число 2 в степени, начиная от 1 до 10, с равными интервалами. В данном случае это означает, что мы получаем значения 21, 22, … 210.

Изменение типа данных значений в функции пространства журнала NumPy

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

Мы можем указать тип данных диапазона, используя аргумент dtype=. Давайте посмотрим, как мы можем изменить наш пример выше, используя тип данных int:

# Modify the Data Type of a Range in the logspace() Function
import numpy as np
print(np.logspace(start=1, stop=10, num=10, base=2, dtype='int'))

# Returns:
# [   2    4    8   16   32   64  128  256  512 1024]

В следующем разделе вы узнаете, как добавить дополнительные измерения к диапазону, возвращаемому функцией np.logspace()

Изменение оси (размерности) значений в функции пространства журналов NumPy

По умолчанию NumPy создаст массив с одним измерением. Однако мы также можем передавать массивы значений в начальные и конечные значения, и мы можем увеличить размерность возвращаемого результата.

Давайте посмотрим, как мы можем передавать списки значений в качестве наших начальных и конечных параметров:

# Changing the Dimensionality of Our Range
import numpy as np
print(np.logspace(start=[1,10], stop=[10,20], num=5, base=2, dtype='int'))

# Returns:
# [[      2    1024]
#  [      9    5792]
#  [     45   32768]
#  [    215  185363]
#  [   1024 1048576]]

Когда мы проверяем форму нашего возвращаемого массива с использованием атрибута .shape, мы увидим, что он возвращает (5,2)

Если мы хотим получить транспонированную версию этого массива, мы можем передать значение 1 в параметр axis=. Давайте посмотрим, как мы можем изменить это поведение:

# Changing the Dimensionality of Our Range
import numpy as np
print(np.logspace(start=[1,10], stop=[10,20], num=5, base=2, dtype='int', axis=1))

# Returns:
# [[      2       9      45     215    1024]
#  [   1024    5792   32768  185363 1048576]]

Визуализация функции пространства журналов NumPy в Python

В этом окончательном разделе вы узнаете, как визуализировать результаты функции logspace из NumPy с помощью Matplotlib. Визуализация данных может быть полезной для лучшего понимания того, как возвращаются данные.

Давайте рассмотрим, как мы можем объединить функции np.linspace() и np.linspace() для визуализации наших данных:

# Visualizing the NumPy logspace function
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(1,5)
y = np.logspace(1,5)

plt.plot(x, y)
plt.show()

Это возвращает следующую визуализацию:

Заключение

В этом уроке вы научились использовать функцию logspace библиотеки NumPy для создания массивов чисел, равномерно распределенных на логарифмической шкале. Сначала вы узнали, как понимать все различные параметры функции. Затем вы исследовали, как изменить количество возвращаемых значений, а также основание используемых значений. После этого вы научились изменять тип данных возвращаемых значений и размерность возвращаемого массива. Наконец, вы научились визуализировать результат возвращаемого массива.

Дополнительные ресурсы

Чтобы узнать больше о связанных темах, ознакомьтесь с обучающими материалами ниже:

Last updated