mlab
matplotlib.mlab
Числовые функции Python, написанные для совместимости с командами MATLAB с такими же именами.
Функции, совместимые с MATLAB
-
cohere() - Когерентность (нормализованная кросс-спектральная плотность)
-
csd() - Кросс-спектральная плотность с использованием усредненного периодограммы Уэлча
-
detrend() - Убрать среднее значение или линию наилучшей подгонки из массива
-
find() - Возвращает индексы, где выполняется некоторое условие; numpy.nonzero аналогичен, но более универсален.
-
griddata() - Интерполяция неравномерно распределенных данных на регулярную сетку.
-
prctile() - Найти процентили последовательности
-
prepca() - Анализ главных компонент
-
psd() - Плотность спектральной мощности с использованием усредненного периодограммы Уэлча
-
rk4() - Интегратор четвертого порядка Рунге-Кутты для 1D или ND систем
-
specgram() - Спектрограмма (спектр по сегментам времени)
Разные функции
Функции, которых нет в MATLAB, но которые полезны:
-
cohere_pairs() - Когерентность по всем парам. Это не функция MATLAB, но в моей лаборатории часто вычисляется когерентность, и мы вычисляем её для многих пар. Эта функция оптимизирована для эффективного выполнения, кэшируя прямые преобразования Фурье.
-
rk4() - Интегратор ОДУ четвёртого порядка Рунге-Кутты на случай, если вы окажетесь без scipy (и намного более совершенных инструментов scipy.integrate)
-
contiguous_regions() - Возвращает индексы областей, охватываемых некоторым логическим маской
-
cross_from_below() - Возвращает индексы, где одномерный массив пересекает порог снизу
-
cross_from_above() - Возвращает индексы, где одномерный массив пересекает порог сверху
-
complex_spectrum() - Возвращает комплекснозначный спектр частот сигнала
-
magnitude_spectrum() - Возвращает величину спектра частот сигнала
-
angle_spectrum() - Возвращает угол (обёрнутая фаза) спектра частот сигнала
-
phase_spectrum() - Возвращает фазу (развернутый угол) спектра частот сигнала
-
detrend_mean() - Удалить среднее значение с прямой.
-
demean() - Удалить среднее значение с прямой. Эта функция эквивалентна
detrend_mean(), за исключением значения по умолчанию для axis. -
detrend_linear() - Удалить линию наилучшей подгонки с прямой.
-
detrend_none() - Возвращает исходную прямую.
-
stride_windows() - Получить все окна в массиве с эффективным использованием памяти
-
stride_repeat() - Повторить массив с эффективным использованием памяти
-
apply_window() - Применить окно вдоль заданной оси
Функции-помощники для массивов записей
Набор вспомогательных методов для массивов записей numpy
См. Разные примеры-
rec2txt() - Красивый вывод массива записей
-
rec2csv() - Сохранение массива записей в CSV-файле
-
csv2rec() - Импорт массива записей из CSV-файла с инспекцией типа
-
rec_append_fields() - Добавление поля(ей)/массива(ов) к массиву записей
-
rec_drop_fields() - Удаление полей из массива записей
-
rec_join() - Объединение двух массивов записей по последовательности полей
-
recs_join() - Простое объединение нескольких массивов rec с помощью одного столбца в качестве ключа
-
rec_groupby() - Сводка данных по группам (аналогично SQL GROUP BY)
-
rec_summarize() - Вспомогательный код для фильтрации полей массива rec в новые поля
Для функций просмотра массивов rec (например, rec2csv) есть набор объектов Format, которые можно передать в функции, чтобы, например, окрасить отрицательные значения в красный цвет, установить форматирование процентов и масштабирование и т. д.
Пример использования:
r = csv2rec('somefile.csv', checkrows=0)
formatd = dict(
weight = FormatFloat(2),
change = FormatPercent(2),
cost = FormatThousands(2),
)
rec2excel(r, 'test.xls', formatd=formatd)
rec2csv(r, 'test.csv', formatd=formatd)
scroll = rec2gtk(r, formatd=formatd)
win = gtk.Window()
win.set_size_request(600,800)
win.add(scroll)
win.show_all()
gtk.main()
-
class matplotlib.mlab.FormatBool -
Bases:
matplotlib.mlab.FormatObj-
fromstr(s)
-
toval(x)
-
-
class matplotlib.mlab.FormatDate(fmt) -
Bases:
matplotlib.mlab.FormatObj-
fromstr(x)
-
toval(x)
-
-
class matplotlib.mlab.FormatDatetime(fmt='%Y-%m-%d %H:%M:%S') -
Bases:
matplotlib.mlab.FormatDate-
fromstr(x)
-
-
class matplotlib.mlab.FormatFloat(precision=4, scale=1.0) -
Bases:
matplotlib.mlab.FormatFormatStr-
fromstr(s)
-
toval(x)
-
-
class matplotlib.mlab.FormatFormatStr(fmt) -
Bases:
matplotlib.mlab.FormatObj-
tostr(x)
-
-
class matplotlib.mlab.FormatInt -
Bases:
matplotlib.mlab.FormatObj-
fromstr(s)
-
tostr(x)
-
toval(x)
-
-
class matplotlib.mlab.FormatMillions(precision=4) -
Bases:
matplotlib.mlab.FormatFloat
-
class matplotlib.mlab.FormatObj -
Bases:
object-
fromstr(s)
-
tostr(x)
-
toval(x)
-
-
class matplotlib.mlab.FormatPercent(precision=4) -
Bases:
matplotlib.mlab.FormatFloat
-
class matplotlib.mlab.FormatString -
Bases:
matplotlib.mlab.FormatObj-
tostr(x)
-
-
class matplotlib.mlab.FormatThousands(precision=4) -
Bases:
matplotlib.mlab.FormatFloat
-
class matplotlib.mlab.GaussianKDE(dataset, bw_method=None) -
Bases:
objectПредставление оценки плотности ядра с использованием гауссовских ядер.
Параметры: dataset : array_like
Точки данных для оценки. В случае одномерных данных это одномерный массив, в противном случае двумерный массив со значением формы (# измерений, # данных).
bw_method : str, скаляр или вызываемый объект, необязательно
Метод, используемый для вычисления ширины полосы оценки. Может принимать значения ‘scott’, ‘silverman’, скалярную константу или вызываемый объект. Если скаляр, это значение будет использовано непосредственно как
kde.factor. Если вызываемый объект, он должен принять экземплярGaussianKDEв качестве единственного параметра и вернуть скаляр. Если None (по умолчанию), используется ‘scott’.Атрибуты
dataset (ndarray) Набор данных, с которым gaussian_kdeбыл инициализирован.dim (int) Количество измерений. num_dp (int) Количество точек данных. factor (float) Коэффициент ширины полосы, полученный из kde.covariance_factor, с которым умножается матрица ковариации.covariance (ndarray) Матрица ковариации dataset, масштабированная вычисленной шириной полосы (kde.factor).inv_cov (ndarray) Обратная covariance.Методы
kde.evaluate(points) (ndarray) Оцените оцененную плотность вероятности в заданном наборе точек. kde(points) (ndarray) То же, что и kde.evaluate(points) -
covariance_factor()
-
evaluate(points) -
Оцените оцененную плотность вероятности в заданном наборе точек.
Параметры: points : (# измерений, # точек)-массив
В качестве альтернативы может быть передан вектор (# измерений,) и обработан как одна точка.
Возвращает: values : (# точек,)-массив
Значения в каждой точке.
Исключения: ValueError : если размерность входных точек отличается
от размерности KDE.
-
scotts_factor()
-
silverman_factor()
-
-
class matplotlib.mlab.PCA(a, standardize=True) -
Bases:
objectвычислить SVD a и сохранить данные для PCA. Используйте project, чтобы спроецировать данные на уменьшенное множество измерений
Параметры: a : np.ndarray
Массив numobservations x numdims
standardize : bool
Истина, если входные данные должны быть стандартизированы. Если ложь, будет выполнено только центрирование.
Примечания
Факторные нагрузки находятся в
Wtфакторе, т.е. факторные нагрузки для первой главной составляющей задаютсяWt[0]. Эта строка также является первым собственным вектором.Атрибуты
a Центрированная версия входных a, нормированная на единичную сигму.numrows, numcols Размеры a.mu Массив numdims средних значений a. Это вектор, указывающий на начало пространства PCA.sigma Массив numdims стандартных отклонений a.fracs Пропорция дисперсии каждого из главных компонентов. s Фактические собственные значения разложения. Wt Вектор весов для проектирования точки или массива numdims в пространство PCA. Y Проекция в пространство PCA. -
center(x) -
центровать и, необязательно, стандартизировать данные, используя среднее значение и сигму из обучающего набора a
-
project(x, minfrac=0.0) -
проектировать x на главные оси, отбрасывая любые оси, где доля дисперсии <minfrac
-
-
matplotlib.mlab.amap(function, sequence[, sequence, ...]) → array. -
Работает так же, как
map(), но возвращает массив. Это просто удобный сокращенный вариант дляnumpy.array(map(...)).
-
matplotlib.mlab.angle_spectrum(x, Fs=None, window=None, pad_to=None, sides=None) -
Вычислить угол спектра частот (спектор фаз, свёрнутый по фазе) x. Данные заполняются до длины pad_to, и к сигналу применяется функция оконного усреднения window.
Параметры: x : одномерный массив или последовательность
Массив или последовательность, содержащие данные
Fs : скаляр
Частота дискретизации (образцов в единицу времени). Она используется для расчёта частот Фурье, freqs, в циклах за единицу времени. Значение по умолчанию — 2.
window : вызываемая функция или одномерный массив
Функция или вектор длины NFFT. Для создания векторов окон см.
window_hanning(),window_none(),numpy.blackman(),numpy.hamming(),numpy.bartlett(),scipy.signal(),scipy.signal.get_window()и т. д. Значение по умолчанию —window_hanning(). Если в качестве аргумента передаётся функция, она должна принимать фрагмент данных и возвращать фрагмент, обработанный с применением окна.sides : [ ‘default’ | ‘onesided’ | ‘twosided’ ]
Указывает, какие стороны спектра возвращать. Значение по умолчанию обеспечивает стандартное поведение, возвращающее односторонний спектр для вещественных данных и двусторонний для комплексных. ‘onesided’ принудительно возвращает односторонний спектр, ‘twosided’ — двусторонний.
pad_to : целое число
Количество точек, до которого заполняется фрагмент данных при выполнении БПФ. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешаемыми пиками), оно может дать больше точек на графике, что позволит получить больше деталей. Это соответствует параметру n в вызове fft(). Значение по умолчанию — None, что устанавливает pad_to равным длине входного сигнала (т.е. без заполнения).
Возвращает: spectrum : одномерный массив
Значения для угла спектра в радианах (вещественные)
freqs : одномерный массив
Частоты, соответствующие элементам в spectrum
См. также
-
complex_spectrum() - Эта функция возвращает значение угла
complex_spectrum(). -
magnitude_spectrum() -
angle_spectrum()возвращает величины соответствующих частот. -
phase_spectrum() -
phase_spectrum()возвращает значения, не зависящие от начальной фазы (unwrapped). -
specgram() -
specgram()может возвращать спектр углов фрагментов внутри сигнала.
-
-
matplotlib.mlab.apply_window(x, window, axis=0, return_window=None) -
Применить заданное окно к заданному одномерному или двумерному массиву вдоль указанной оси.
Параметры: x : одномерный или двумерный массив или последовательность
Массив или последовательность, содержащие данные.
window : функция или массив.
Либо функция для генерации окна, либо массив длиной x.shape[axis]
axis : целое число
Ось, вдоль которой выполнить операцию. Должно быть 0 или 1. Значение по умолчанию — 0.
return_window : bool
Если True, также возвращает одномерные значения окна, которое было применено.
-
matplotlib.mlab.base_repr(number, base=2, padding=0) -
Возвращает представление числа в заданном основании.
-
matplotlib.mlab.binary_repr(number, max_length=1025) -
Возвращает двоичное представление входного числа в виде строки.
Это более эффективно, чем использование
base_repr()с основанием 2.Увеличьте значение max_length для очень больших чисел. Обратите внимание, что на 32-разрядных машинах 2**1023 — это наибольшая целая степень двойки, которая может быть преобразована в число с плавающей запятой Python.
-
matplotlib.mlab.bivariate_normal(X, Y, sigmax=1.0, sigmay=1.0, mux=0.0, muy=0.0, sigmaxy=0.0) -
Двумерное распределение Гаусса для матриц X и Y одинаковой формы.
См. двумерное нормальное распределение на mathworld.
-
matplotlib.mlab.center_matrix(M, dim=0) -
Возвращает матрицу M, в которой каждая строка имеет нулевое среднее значение и единичное стандартное отклонение.
Если dim = 1, работает со столбцами вместо строк. (dim противоположен numpy axis kwarg).
-
matplotlib.mlab.cohere(x, y, NFFT=256, Fs=2, detrend=<function detrend_none>, window=<function window_hanning>, noverlap=0, pad_to=None, sides='default', scale_by_freq=None) -
Когерентность между x и y. Когерентность — это нормированная взаимная спектральная плотность:
Параметры: x, y
Массив или последовательность, содержащая данные
Fs : скаляр
Частота дискретизации (образцы в единицу времени). Используется для вычисления частот Фурье, freqs, в циклах за единицу времени. Значение по умолчанию — 2.
window : вызываемый объект или массив
Функция или вектор длиной NFFT. Для создания векторов окон см.
window_hanning(),window_none(),numpy.blackman(),numpy.hamming(),numpy.bartlett(),scipy.signal(),scipy.signal.get_window()и т.д. Значение по умолчанию —window_hanning(). Если в качестве аргумента передается функция, она должна принимать фрагмент данных и возвращать оконную версию фрагмента.sides : [ ‘default’ | ‘onesided’ | ‘twosided’ ]
Указывает, какие стороны спектра возвращать. Значение по умолчанию обеспечивает стандартное поведение: возвращает односторонний спектр для вещественных данных и двусторонний для комплексных данных. ‘onesided’ принудительно возвращает односторонний спектр, а ‘twosided’ — двусторонний.
pad_to : целое число
Количество точек, до которых дополняется фрагмент данных при выполнении БПФ. Это может отличаться от NFFT, которое определяет количество точек данных. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешаемыми пиками), это может дать больше точек на графике, что позволит получить больше деталей. Это соответствует параметру n в вызове fft(). Значение по умолчанию — None, которое устанавливает pad_to равным NFFT
NFFT : целое число
Количество точек данных, используемых в каждом блоке для БПФ. Мощность 2 наиболее эффективна. Значение по умолчанию — 256. Не следует использовать для получения нулевого заполнения, так как это повлияет на масштабирование результата. Используйте pad_to вместо этого.
detrend : {‘default’, ‘constant’, ‘mean’, ‘linear’, ‘none’} или вызываемый объект
Функция, применяемая к каждому фрагменту перед БПФ, предназначенная для удаления среднего значения или линейной тенденции. В отличие от MATLAB, где параметр detrend — вектор, в matplotlib он является функцией. Модуль
pylabопределяетdetrend_none(),detrend_mean(), иdetrend_linear(), но вы также можете использовать пользовательскую функцию. Вы также можете использовать строку, чтобы выбрать одну из функций. ‘default’, ‘constant’, и ‘mean’ вызываютdetrend_mean(). ‘linear’ вызываетdetrend_linear(). ‘none’ вызываетdetrend_none().scale_by_freq : булево значение, необязательно
Указывает, следует ли масштабировать значения плотности полученного результата по частоте масштабирования, что дает плотность в единицах Hz^-1. Это позволяет для интеграции по возвращаемым значениям частоты. По умолчанию True для совместимости с MATLAB.
noverlap : целое число
Количество перекрывающихся точек между блоками. Значение по умолчанию — 0 (без перекрытия).
Возвращаемое значение: Возвращаемое значение — кортеж (Cxy, f), где f —
частоты вектора когерентности. В случае когерентности масштабирование
отдельных плотностей частотой дискретизации не влияет,
так как множители взаимно сокращаются.
-
matplotlib.mlab.cohere_pairs(X, ij, NFFT=256, Fs=2, detrend=<function detrend_none>, window=<function window_hanning>, noverlap=0, preferSpeedOverMemory=True, progressCallback=<function donothing_callback>, returnPxx=False) -
Вычисление когерентности и фазы для всех пар ij в X.
X — массив numSamples * numCols
ij — список кортежей. Каждый кортеж — пара индексов в столбцах X, для которых нужно вычислить когерентность. Например, если X имеет 64 столбца, и вы хотите вычислить все нередунданные пары, определите ij как:
ij = [] for i in range(64): for j in range(i+1,64): ij.append( (i,j) )preferSpeedOverMemory — необязательный bool. По умолчанию True. Если False, ограничивает кеширование, создавая только один, а не два комплексных массива кеша. Это полезно, если память становится критической. Даже когда preferSpeedOverMemory False,
cohere_pairs()по-прежнему обеспечит значительное повышение производительности по сравнению с вызовомcohere()для каждой пары и будет использовать значительно меньше памяти, чем если preferSpeedOverMemory True. В моих тестах с массивом 43000x64 по всем нередунданным парам, preferSpeedOverMemory = True обеспечил прирост производительности на 33% на процессоре Athlon 1.7 ГГц с 512 МБ ОЗУ по сравнению с preferSpeedOverMemory = False. Но оба решения были более чем в 10 раз быстрее, чем при прямом вычислении всех возможных пар черезcohere().Возвращаемое значение: Cxy : словарь кортежей (i, j) -> вектор когерентности для
этой пары. Т.е.,
Cxy[(i,j) = cohere(X[:,i], X[:,j]). Количество ключей словаря —len(ij).Phase : словарь фаз взаимной спектральной плотности в
каждой частоте для каждой пары. Ключи — (i, j).
freqs : вектор частот, равный по длине либо вектору
когерентности, либо вектору фаз для любого ключа (i, j).
например, для построения диаграммы Боде когерентности:
subplot(211) plot( freqs, Cxy[(12,19)]) subplot(212) plot( freqs, Phase[(12,19)])
Для большого количества пар
cohere_pairs()может быть намногоэффективнее, чем просто вызов
cohere()для каждой пары, потому чтоон кеширует большинство интенсивных вычислений. Если
—
количество пар, эта функция —
для большей части
тяжелой работы, в то время как вызов cohere для каждой пары —
. Однако из-за кеширования она также более
ёмкая в плане памяти, создавая 2 дополнительных комплексных массива
примерно с таким же количеством элементов, как и X.
См.
test/cohere_pairs_test.pyв дереве src для примераскрипта, который показывает, что эта
cohere_pairs()иcohere()дают одинаковые результаты для заданной пары.См. также
-
psd() - Для получения информации о методах вычисления
,
и
.
-
-
matplotlib.mlab.complex_spectrum(x, Fs=None, window=None, pad_to=None, sides=None) -
Вычислить комплексное частотное спектр x. Данные дополняются до длины pad_to, и к сигналу применяется функция окна window.
Параметры: x : одномерный массив или последовательность
Массив или последовательность, содержащие данные
Fs : скаляр
Частота дискретизации (образцов в единицу времени). Используется для расчета частот Фурье, freqs, в циклах на единицу времени. Значение по умолчанию равно 2.
window : вызываемый объект или массив
Функция или вектор длиной NFFT. Для создания векторов окон см.
window_hanning(),window_none(),numpy.blackman(),numpy.hamming(),numpy.bartlett(),scipy.signal(),scipy.signal.get_window()и т.д. Значение по умолчанию —window_hanning(). Если в качестве аргумента передается функция, она должна принимать фрагмент данных и возвращать окно фрагмента.sides : [ ‘default’ | ‘onesided’ | ‘twosided’ ]
Указывает, какие стороны спектра возвращать. Значение по умолчанию обеспечивает стандартное поведение: возвращает односторонний спектр для вещественных данных и двусторонний для комплексных. ‘onesided’ принудительно возвращает односторонний спектр, а ‘twosided’ — двусторонний.
pad_to : целое число
Количество точек, до которых дополняется фрагмент данных при выполнении БПФ. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешаемыми пиками), это может дать больше точек на графике, что позволит получить больше деталей. Соответствует параметру n в вызове fft(). Значение по умолчанию — None, которое устанавливает pad_to равным длине входного сигнала (т. е. без дополнения).
Возвращает: spectrum : одномерный массив
Значения комплексного спектра (комплексные значения)
freqs : одномерный массив
Частоты, соответствующие элементам в spectrum
См. также
-
magnitude_spectrum() -
magnitude_spectrum()возвращает абсолютное значение этой функции. -
angle_spectrum() -
angle_spectrum()возвращает угол этой функции. -
phase_spectrum() -
phase_spectrum()возвращает фазу (развёрнутый угол) этой функции. -
specgram() -
specgram()может возвращать комплексный спектр фрагментов в сигнале.
-
-
matplotlib.mlab.contiguous_regions(mask) -
возвращает список (ind0, ind1) такой, что mask[ind0:ind1].all() равно True, и мы охватываем все такие области
-
matplotlib.mlab.cross_from_above(x, threshold) -
возвращает индексы в x, где x пересекает некоторый порог снизу, например, i, где:
x[i-1]>threshold and x[i]<=threshold
См. также
-
matplotlib.mlab.cross_from_below(x, threshold) -
возвращает индексы в x, где x пересекает некоторый порог снизу, например, i, где:
x[i-1]<threshold and x[i]>=threshold
Пример кода:
import matplotlib.pyplot as plt t = np.arange(0.0, 2.0, 0.1) s = np.sin(2*np.pi*t) fig = plt.figure() ax = fig.add_subplot(111) ax.plot(t, s, '-o') ax.axhline(0.5) ax.axhline(-0.5) ind = cross_from_below(s, 0.5) ax.vlines(t[ind], -1, 1) ind = cross_from_above(s, -0.5) ax.vlines(t[ind], -1, 1) plt.show()
См. также
-
matplotlib.mlab.csd(x, y, NFFT=None, Fs=None, detrend=None, window=None, noverlap=None, pad_to=None, sides=None, scale_by_freq=None) -
Вычислить взаимную спектральную плотность.
Вызов функции:
csd(x, y, NFFT=256, Fs=2, detrend=mlab.detrend_none, window=mlab.window_hanning, noverlap=0, pad_to=None, sides='default', scale_by_freq=None)Взаимная спектральная плотность
методом усреднения периодограмм Уэлча. Векторы x и y делятся на сегменты длиной NFFT. Каждый сегмент сглаживается функцией detrend и окна функцией window. noverlap задаёт длину перекрытия между сегментами. Произведение прямых преобразований Фурье от x и y усредняется по каждому сегменту для вычисления
, с масштабированием для коррекции потерь мощности из-за окон.
Если len(x) < NFFT или len(y) < NFFT, они будут дополнены нулями до NFFT.
Параметры: x, y : одномерные массивы или последовательности
Массивы или последовательности, содержащие данные
Fs : скаляр
Частота дискретизации (образцы в единицу времени). Она используется для вычисления частот Фурье, freqs, в циклах на единицу времени. Значение по умолчанию равно 2.
window : вызываемая функция или массив
Функция или вектор длины NFFT. Для создания векторов окон см.
window_hanning(),window_none(),numpy.blackman(),numpy.hamming(),numpy.bartlett(),scipy.signal(),scipy.signal.get_window()и т. д. Значение по умолчанию –window_hanning(). Если в качестве аргумента передается функция, она должна принимать сегмент данных в качестве аргумента и возвращать оконную версию сегмента.sides : [ ‘default’ | ‘onesided’ | ‘twosided’ ]
Указывает, какие стороны спектра вернуть. Значение по умолчанию обеспечивает стандартное поведение, которое возвращает односторонний спектр для вещественных данных и двусторонний для комплексных данных. ‘onesided’ принудительно возвращает односторонний спектр, а ‘twosided’ — двусторонний.
pad_to : целое число
Количество точек, до которого дополняются нулями сегменты данных при выполнении преобразования Фурье. Это может отличаться от NFFT, которое задаёт количество точек данных, используемых. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешимыми пиками), это может обеспечить больше точек в графике, что позволит получить больше деталей. Это соответствует параметру n в вызове fft(). По умолчанию равно None, что устанавливает pad_to равным NFFT
NFFT : целое число
Количество точек данных, используемых в каждом блоке для преобразования Фурье. Степень 2 наиболее эффективна. Значение по умолчанию равно 256. Не следует использовать для получения нулевого заполнения, так как масштабирование результата будет неверным. Используйте pad_to для этого вместо этого.
detrend : {‘default’, ‘constant’, ‘mean’, ‘linear’, ‘none’} или вызываемая функция
Функция, применяемая к каждому сегменту перед преобразованием Фурье, предназначенная для удаления среднего значения или линейной тенденции. В отличие от MATLAB, где параметр detrend является вектором, в matplotlib это функция. Модуль
pylabопределяетdetrend_none(),detrend_mean(), иdetrend_linear(), но вы можете использовать и пользовательскую функцию. Вы также можете использовать строку для выбора одной из функций. ‘default’, ‘constant’ и ‘mean’ вызываютdetrend_mean(). ‘linear’ вызываетdetrend_linear(). ‘none’ вызываетdetrend_none().scale_by_freq : булево значение, необязательно
Указывает, следует ли масштабировать значения плотности, полученные в результате, на частоту масштабирования, что даёт плотность в единицах Hz^-1. Это позволяет интегрировать по возвращаемым частотным значениям. Значение по умолчанию равно True для совместимости с MATLAB.
noverlap : целое число
Количество перекрывающихся точек между сегментами. Значение по умолчанию равно 0 (без перекрытия).
Возвращает: Pxy : одномерный массив
Значения для взаимного спектра
P_{xy}до масштабирования (вещественные значения)freqs : одномерный массив
Частоты, соответствующие элементам в Pxy
Ссылки
Bendat & Piersol – Random Data: Analysis and Measurement Procedures, John Wiley & Sons (1986)
-
matplotlib.mlab.csv2rec(fname, comments='#', skiprows=0, checkrows=0, delimiter=', ', converterd=None, names=None, missing='', missingd=None, use_mrecords=False, dayfirst=False, yearfirst=False) -
Загрузка данных из файла с разделителями запятой/пробела/табуляции в fname в массив numpy с записями и возврат массива записей.
Если names равно None, требуется строка заголовка для автоматического назначения имён recarray. Заголовки будут приведены к нижнему регистру, пробелы будут преобразованы в подчёркивания, а неподходящие символы имени атрибута будут удалены. Если names не равно None, это последовательность имён для использования в качестве имён столбцов. В этом случае предполагается, что строки заголовка нет.
- fname: может быть именем файла или дескриптором файла. Поддержка сжатых файлов gzip выполняется автоматически, если имя файла оканчивается на ‘.gz’
- comments: символ, используемый для обозначения начала комментария в файле, или None для отключения удаления комментариев
- skiprows: количество строк сверху, которые нужно пропустить
- checkrows: количество строк для проверки, чтобы проверить тип данных столбца. Если установлено в ноль, проверяются все строки.
- converterd: если не равно None, это словарь, сопоставляющий номер столбца или изменённое имя столбца с функцией преобразования.
- names: если не равно None, это список имён заголовков. В этом случае из файла не будет читаться заголовок
- missingd это словарь, сопоставляющий изменённые имена столбцов со значениями полей, которые указывают, что поле не содержит фактических данных и должно быть замаскировано, например, ‘0000-00-00’ или ‘unused’
- missing: строка, значение которой сигнализирует об отсутствующем поле независимо от столбца, в котором оно появляется
- use_mrecords: если True, возвращает массив записей mrecords.fromrecords, если какие-либо данные отсутствуют
- dayfirst: значение по умолчанию False, так что MM-DD-YY имеет приоритет перед DD-MM-YY. См. http://labix.org/python-dateutil#head-b95ce2094d189a89f80f5ae52a05b4ab7b41af47 для получения дополнительной информации.
-
yearfirst: значение по умолчанию False, так что MM-DD-YY имеет приоритет перед YY-MM-DD. См. http://labix.org/python-dateutil#head-b95ce2094d189a89f80f5ae52a05b4ab7b41af47 для получения дополнительной информации.
Если строк не найдено, возвращается None
-
matplotlib.mlab.csvformat_factory(format)
-
matplotlib.mlab.demean(x, axis=0) -
Возвращает x минус его среднее значение по указанной оси.
Параметры: x : массив или последовательность
Массив или последовательность, содержащая данные. Может иметь любую размерность
axis : целое число
Ось, по которой вычисляется среднее значение. См. numpy.mean для описания этого аргумента.
См. также
delinear()-
denone() -
delinear()иdenone()являются другими алгоритмами сглаживания. -
detrend_mean() - Эта функция аналогична
detrend_mean(), за исключением значения по умолчанию для axis.
-
-
matplotlib.mlab.detrend(x, key=None, axis=None) -
Возвращает x со снятой трендовой составляющей.
Параметры: x : массив или последовательность
Массив или последовательность, содержащая данные.
key : [‘default’ | ‘constant’ | ‘mean’ | ‘linear’ | ‘none’] или функция
Указывает алгоритм удаления тренда. ‘default’ — это ‘mean’, который аналогичен
detrend_mean(). ‘constant’ аналогичен. ‘linear’ аналогиченdetrend_linear(). ‘none’ аналогиченdetrend_none(). Значение по умолчанию — ‘mean’. Подробности об алгоритмах см. в соответствующих функциях. Также может быть функцией, выполняющей операцию удаления тренда.axis : целое число
Ось, вдоль которой выполняется удаление тренда.
См. также
-
detrend_mean() -
detrend_mean()реализует алгоритм ‘mean’. -
detrend_linear() -
detrend_linear()реализует алгоритм ‘linear’. -
detrend_none() -
detrend_none()реализует алгоритм ‘none’.
-
-
matplotlib.mlab.detrend_linear(y) -
Возвращает x минус прямую наилучшей аппроксимации; удаление тренда ‘linear’.
Параметры: y : массив или последовательность размерности 0 или 1
Массив или последовательность, содержащая данные
axis : целое число
Ось, вдоль которой вычислять среднее значение. См. numpy.mean для описания этого аргумента.
См. также
-
delinear() - Эта функция аналогична
delinear()за исключением значения axis по умолчанию.
-
detrend_none() -
detrend_mean()иdetrend_none()— другие алгоритмы удаления тренда. -
detrend() -
detrend()— обёртка вокруг всех алгоритмов удаления тренда.
-
-
matplotlib.mlab.detrend_mean(x, axis=None) -
Возвращает x минус среднее значение (x).
Параметры: x : массив или последовательность
Массив или последовательность, содержащая данные. Может иметь произвольную размерность.
axis : целое число
Ось, вдоль которой вычислять среднее значение. См. numpy.mean для описания этого аргумента.
См. также
-
detrend_none() -
detrend_linear()иdetrend_none()— другие алгоритмы удаления тренда. -
detrend() -
detrend()— обёртка вокруг всех алгоритмов удаления тренда.
-
-
matplotlib.mlab.detrend_none(x, axis=None) -
Возвращает x: без удаления тренда.
Параметры: x : любой объект
Объект, содержащий данные
axis : целое число
Этот параметр игнорируется. Он включён для совместимости с detrend_mean
См. также
-
denone() - Эта функция аналогична
denone()за исключением значения axis по умолчанию, которое не оказывает влияния.
-
detrend_linear() -
detrend_mean()иdetrend_linear()— другие алгоритмы удаления тренда. -
detrend() -
detrend()— обёртка вокруг всех алгоритмов удаления тренда.
-
-
matplotlib.mlab.dist(x, y) -
Возвращает расстояние между двумя точками.
-
matplotlib.mlab.dist_point_to_segment(p, s0, s1) -
Получение расстояния от точки до отрезка.
p, s0, s1 — последовательности xyЭтот алгоритм взят с http://geomalgorithms.com/a02-_lines.html
-
matplotlib.mlab.distances_along_curve(X) -
Вычисляет расстояние между набором последовательных точек в N измерениях.
Где X — массив или матрица размерностью M x N. Вычисляются расстояния между последовательными строками. Расстояние — это стандартное евклидово расстояние.
-
matplotlib.mlab.donothing_callback(*args)
-
matplotlib.mlab.entropy(y, bins) -
Возвращает энтропию данных в y в единицах ната.
где
— вероятность наблюдения y в
ячейке bins. bins может быть числом ячеек или диапазоном ячеек; см.
numpy.histogram().Сравните S с аналитическим вычислением для гауссовой функции:
x = mu + sigma * randn(200000) Sanalytic = 0.5 * ( 1.0 + log(2*pi*sigma**2.0) )
-
matplotlib.mlab.exp_safe(x) -
Вычисляет экспоненты, которые безопасно переходят в ноль при потере значимости.
Медленно, но удобно использовать. Обратите внимание, что numpy предоставляет надлежащую обработку исключений с плавающей точкой с доступом к базовому оборудованию.
-
matplotlib.mlab.fftsurr(x, detrend=<function detrend_none>, window=<function window_none>) -
Вычисляет суррогат x с фазовым случайным шумом FFT.
-
matplotlib.mlab.find(condition) -
Возвращает индексы, где ravel(condition) равно true
-
matplotlib.mlab.frange([start, ]stop[, step, keywords]) → array of floats -
Возвращает массив NumPy, содержащий последовательность чисел с плавающей точкой. Аналогично
numpy.arange(), но по умолчанию возвращает замкнутый интервал.frange(x0, x1)возвращает[x0, x0+1, x0+2, ..., x1]; start по умолчанию равен 0, и конечная точка включена. Это отличается от поведенияrange()иnumpy.arange(). Это сделано намеренно, так какfrange()будет, вероятно, более полезен для генерации списков точек для вычисления функций, а конечные точки часто требуются в этом случае. Стандартное поведениеrange()можно получить, установив ключевое слово closed = 0, в этом случаеfrange()фактически становится :func:numpy.arange`.Если задан параметр step, он задаёт шаг (или убывание). Все аргументы могут быть числами с плавающей точкой.
frange(x0,x1,d)возвращает[x0,x0+d,x0+2d,...,xfin]где xfin <= x1.frange()также может быть вызван с ключевым словом npts. Это задаёт количество точек в списке (и переопределяет значение step, которое могло быть задано).numpy.arange()не предлагает этого варианта.Примеры:
>>> frange(3) array([ 0., 1., 2., 3.]) >>> frange(3,closed=0) array([ 0., 1., 2.]) >>> frange(1,6,2) array([1, 3, 5]) or 1,3,5,7, depending on floating point vagueries >>> frange(1,6.5,npts=5) array([ 1. , 2.375, 3.75 , 5.125, 6.5 ])
-
matplotlib.mlab.get_formatd(r, formatd=None) -
создаёт формат, гарантирующий наличие ключа для каждого имени типа данных
-
matplotlib.mlab.get_sparse_matrix(M, N, frac=0.1) -
Возвращает разреженную матрицу размером M x N с заполненными случайным образом frac элементами.
-
matplotlib.mlab.get_xyz_where(Z, Cond) -
Z и Cond — матрицы размером M x N. Z — данные, Cond — булева матрица, где выполняется некоторое условие. Значение возврата — (x, y, z), где x и y — индексы в Z, а z — значения Z в этих индексах. x, y и z — одномерные массивы.
-
matplotlib.mlab.griddata(x, y, z, xi, yi, interp='nn') -
Интерполирует данные с неравномерной сетки на другую сетку.
Построение поверхности вида z = f(
x,y) по данным в (обычно) неравномерно распределённых векторах (x,y,z) и затем интерполирование этой поверхности в точках, заданных (xi,yi) для полученияzi.Параметры: x, y, z : одномерный массив_подобный
Координаты точек сетки для интерполяции.
xi, yi : одномерный или двумерный массив_подобный
Координаты точек сетки для интерполяции.
interp : строковый ключ из {‘nn’, ‘linear’}
Алгоритм интерполяции, либо ‘nn’ для интерполяции ближайших соседей, либо ‘linear’ для линейной интерполяции.
Возвращаемое значение: двумерный массив float
Массив значений, интерполированных в точках (
xi,yi) . Массив будет замаскирован, если какие-либо из (xi,yi) находятся вне выпуклой оболочки (x,y).Примечания
Если
interpравно ‘nn’ (по умолчанию), используется интерполяция ближайших соседей на основе триангуляции Делоне. Этот вариант доступен только в том случае, если модуль mpl_toolkits.natgrid установлен. Его можно загрузить с https://github.com/matplotlib/natgrid. Сетка (xi,yi) должна быть регулярной и монотонно возрастающей в этом случае.Если
interpравно ‘linear’, используется линейная интерполяция через matplotlib.tri.LinearTriInterpolator.Вместо использования
griddata, для более гибкой функциональности и других вариантов интерполяции можно использовать matplotlib.tri.Triangulation и matplotlib.tri.TriInterpolator.
-
matplotlib.mlab.identity(n, rank=2, dtype='l', typecode=None) -
Возвращает единичную матрицу формы (n, n, …, n) (ранг r).
Для рангов выше 2 этот объект просто многоиндексная кронекерова дельта:
/ 1 if i0=i1=...=iR, id[i0,i1,...,iR] = -| \ 0 otherwise.Дополнительным образом можно указать тип данных dtype (или тип кода) (по умолчанию «l»).
Поскольку ранг по умолчанию равен 2, эта функция в случае по умолчанию (когда задан только n) ведёт себя как
numpy.identity(n)— но, удивительно, намного быстрее.
-
matplotlib.mlab.inside_poly(points, verts) -
points — последовательность точек x, y. verts — последовательность вершин многоугольника x, y.
Возвращаемое значение — последовательность индексов в points для точек, которые находятся внутри многоугольника.
-
matplotlib.mlab.is_closed_polygon(X) -
Проверяет, равны ли первая и последняя точки в последовательности. Предполагается, что это координаты на полигональной кривой, и функция проверяет, замкнута ли эта кривая.
-
matplotlib.mlab.ispower2(n) -
Возвращает логарифм по основанию 2 от n, если n — степень двойки, иначе ноль.
Обратите внимание на потенциальную неоднозначность, если n == 1: 2**0 == 1, интерпретируйте соответствующим образом.
-
matplotlib.mlab.isvector(X) -
Подобно одноимённой функции MATLAB, возвращает True, если предоставленный массив или матрица NumPy X выглядит как вектор, т. е. имеет один неединичный ось (т. е. может иметь несколько осей, но все должны иметь длину 1, за исключением одной из них).
Если вам нужно просто проверить, имеет ли массив 1 ось, используйте X.ndim == 1.
-
matplotlib.mlab.l1norm(a) -
Возвращает l1-норму a, уплощенную.
Реализована как отдельная функция (а не вызов
norm()для повышения скорости).
-
matplotlib.mlab.l2norm(a) -
Возвращает l2-норму a, уплощенную.
Реализована как отдельная функция (а не вызов
norm()для повышения скорости).
-
matplotlib.mlab.less_simple_linear_interpolation(x, y, xi, extrap=False) -
Эта функция обеспечивает простую (но несколько менее, чем
cbook.simple_linear_interpolation()) линейную интерполяцию.simple_linear_interpolation()даст список точек между началом и концом, в то время как это делает истинную линейную интерполяцию в произвольной группе точек.Это очень неэффективная линейная интерполяция, предназначенная для использования только с небольшим количеством точек в относительно неинтенсивных случаях использования. Для реальной линейной интерполяции используйте scipy.
-
matplotlib.mlab.log2(x, ln2=0.6931471805599453) -
Возвращает log(x) по основанию 2.
Это _медленная_ функция, но которая гарантированно возвращает правильное целое значение, если входное значение — целое точное число, являющееся степенью двойки.
-
matplotlib.mlab.logspace(xmin, xmax, N) -
Возвращает N значений, логарифмически распределённых между xmin и xmax.
-
matplotlib.mlab.longest_contiguous_ones(x) -
Возвращает индексы самой длинной последовательности непрерывных единиц в x, предполагая, что x — вектор нулей и единиц. Если есть две последовательности одинаковой длины, выбирается первая.
-
matplotlib.mlab.longest_ones(x) -
Псевдоним для longest_contiguous_ones
-
matplotlib.mlab.magnitude_spectrum(x, Fs=None, window=None, pad_to=None, sides=None) -
Вычислите величину (абсолютное значение) спектра частот x. Данные дополняются до длины pad_to, и к сигналу применяется функция окна window.
Параметры: x : одномерный массив или последовательность
Массив или последовательность, содержащие данные
Fs : скаляр
Частота дискретизации (образцы в единицу времени). Она используется для расчёта частот Фурье, freqs, в циклах в единицу времени. Значение по умолчанию равно 2.
window : вызываемый объект или массив
Функция или вектор длиной NFFT. Для создания векторов окон см.
window_hanning(),window_none(),numpy.blackman(),numpy.hamming(),numpy.bartlett(),scipy.signal(),scipy.signal.get_window()и т. д. Значение по умолчанию —window_hanning(). Если в качестве аргумента передаётся функция, она должна принимать фрагмент данных в качестве аргумента и возвращать обработанный фрагмент.sides : [ ‘default’ | ‘onesided’ | ‘twosided’ ]
Указывает, какие стороны спектра возвращать. Значение по умолчанию соответствует поведению по умолчанию, которое возвращает односторонний спектр для вещественных данных и двусторонний для комплексных данных. ‘onesided’ принудительно возвращает односторонний спектр, а ‘twosided’ — двусторонний.
pad_to : целое число
Количество точек, до которых дополняются фрагменты данных при выполнении преобразования Фурье. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешаемыми пиками), это может обеспечить больше точек в графике, позволяя получить больше деталей. Это соответствует параметру n в вызове fft(). По умолчанию значение None, которое устанавливает pad_to равным длине входного сигнала (т.е. без заполнения).
Возвращает: spectrum : одномерный массив
Значения для спектра величины (вещественные)
freqs : одномерный массив
Частоты, соответствующие элементам в spectrum
См. также
-
psd() -
psd()возвращает плотность спектральной мощности. -
complex_spectrum() - Эта функция возвращает абсолютное значение
complex_spectrum(). -
angle_spectrum() -
angle_spectrum()возвращает углы соответствующих частот. -
phase_spectrum() -
phase_spectrum()возвращает фазу (неупакованный угол) соответствующих частот. -
specgram() -
specgram()может возвращать спектр величины для фрагментов внутри сигнала.
-
-
matplotlib.mlab.movavg(x, n) -
Вычислите скользящее среднее len(n) для x.
-
matplotlib.mlab.norm_flat(a, p=2) -
norm(a,p=2) -> l-p норма a.flat
Возвращает l-p норму a, рассматривая его как плоский массив. Это НЕ является истинной матричной нормой, так как массивы произвольного ранга всегда сплющиваются.
p может быть числом или строкой ‘Infinity’, чтобы получить норму L-бесконечности.
-
matplotlib.mlab.normpdf(x, *args) -
Возвращает значение нормального распределения, вычисленное в точке x; args предоставляет mu, sigma
-
matplotlib.mlab.offset_line(y, yerr) -
Смещает массив y на +/- ошибку и возвращает кортеж (y - err, y + err).
Ошибка может быть:
- Скаляр. В этом случае возвращаемый кортеж очевиден.
- Вектор той же длины, что и y. Величины y +/- err вычисляются покомпонентно.
-
Кортеж длиной 2. В этом случае yerr[0] — ошибка ниже y, а yerr[1] — ошибка выше y. Например:
from pylab import * x = linspace(0, 2*pi, num=100, endpoint=True) y = sin(x) y_minus, y_plus = mlab.offset_line(y, 0.1) plot(x, y) fill_between(x, ym, y2=yp) show()
-
matplotlib.mlab.path_length(X) -
Вычисляет пройденное расстояние по полигональной кривой в N измерениях.
Где X — массив или матрица M x N. Возвращает массив длины M, состоящий из расстояния вдоль кривой в каждой точке (т. е. строки X).
-
matplotlib.mlab.phase_spectrum(x, Fs=None, window=None, pad_to=None, sides=None) -
Вычислите фазу спектра частот (спектр углов, не скруглённый) x. Данные дополняются до длины pad_to, и к сигналу применяется функция окна window.
Параметры: x : одномерный массив или последовательность
Массив или последовательность, содержащие данные
Fs : скаляр
Частота дискретизации (образцы в единицу времени). Она используется для расчёта частот Фурье, freqs, в циклах в единицу времени. Значение по умолчанию равно 2.
window : вызываемый объект или массив
Функция или вектор длиной NFFT. Для создания векторов окон см.
window_hanning(),window_none(),numpy.blackman(),numpy.hamming(),numpy.bartlett(),scipy.signal(),scipy.signal.get_window()и т. д. Значение по умолчанию —window_hanning(). Если в качестве аргумента передаётся функция, она должна принимать фрагмент данных в качестве аргумента и возвращать обработанный фрагмент.sides : [ ‘default’ | ‘onesided’ | ‘twosided’ ]
Указывает, какие стороны спектра возвращать. Значение по умолчанию соответствует поведению по умолчанию, которое возвращает односторонний спектр для вещественных данных и двусторонний для комплексных данных. ‘onesided’ принудительно возвращает односторонний спектр, а ‘twosided’ — двусторонний.
pad_to : целое число
Количество точек, до которых дополняются фрагменты данных при выполнении преобразования Фурье. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешаемыми пиками), это может обеспечить больше точек в графике, позволяя получить больше деталей. Это соответствует параметру n в вызове fft(). По умолчанию значение None, которое устанавливает pad_to равным длине входного сигнала (т.е. без заполнения).
Возвращает: spectrum : одномерный массив
Значения для спектра фаз в радианах (вещественные)
freqs : одномерный массив
Частоты, соответствующие элементам в spectrum
См. также
-
complex_spectrum() - Эта функция возвращает значение угла
complex_spectrum(). -
magnitude_spectrum() -
magnitude_spectrum()возвращает величины соответствующих частот. -
angle_spectrum() -
angle_spectrum()возвращает скруглённую версию этой функции. -
specgram() -
specgram()может возвращать спектр фаз для фрагментов внутри сигнала.
-
-
matplotlib.mlab.poly_below(xmin, xs, ys) -
В заданной последовательности xs и ys верните вершины многоугольника, имеющего горизонтальную основу в xmin и верхнюю границу в ys. xmin — скаляр.
Предназначено для использования с
matplotlib.axes.Axes.fill(), например:xv, yv = poly_below(0, x, y) ax.fill(xv, yv)
-
matplotlib.mlab.poly_between(x, ylower, yupper) -
В заданной последовательности x, ylower и yupper верните многоугольник, заполняющий области между ними. ylower или yupper могут быть скаляром или итерируемым объектом. Если они итерируемые, их длина должна быть равна длине x.
Значение возврата — массивы x и y для использования с
matplotlib.axes.Axes.fill().
-
matplotlib.mlab.prctile(x, p=(0.0, 25.0, 50.0, 75.0, 100.0)) -
Возвращает процентили x. p может быть последовательностью значений процентилей или скаляром. Если p — последовательность, i-й элемент возвращаемой последовательности — p*(i)-й процентиль *x. Если p — скаляр, возвращается наибольшее значение x, меньшее или равное p-ому процентильному значению в последовательности.
-
matplotlib.mlab.prctile_rank(x, p) -
Возвращает ранг для каждого элемента в x, возвращает ранг 0..len(p). Например, если p = (25, 50, 75), возвращаемое значение будет массивом длиной len(x) со значениями в [0,1,2,3], где 0 означает, что значение меньше 25-го процентиля, 1 — что значение больше или равно 25-му процентилю и меньше 50-го процентиля и т.д., а 3 — что значение выше 75-го процентиля.
p — это массив процентилей в [0..100] или скаляр, указывающий, сколько квантилей данных нужно ранжировать.
-
matplotlib.mlab.psd(x, NFFT=None, Fs=None, detrend=None, window=None, noverlap=None, pad_to=None, sides=None, scale_by_freq=None) -
Вычисляет плотность спектральной мощности.
Вызов:
psd(x, NFFT=256, Fs=2, detrend=mlab.detrend_none, window=mlab.window_hanning, noverlap=0, pad_to=None, sides='default', scale_by_freq=None)Плотность спектральной мощности
методом усреднённого периодограммы Уэлча. Вектор x делится на отрезки длиной NFFT. Каждый отрезок обрабатывается функцией detrend и окончивается функцией window. noverlap задаёт длину перекрытия между отрезками.
каждого отрезка
усредняются для вычисления
.
Если len(x) < NFFT, он будет дополнен нулями до NFFT.
Параметры: x : одномерный массив или последовательность
Массив или последовательность, содержащие данные
Fs : скаляр
Частота дискретизации (образцов в единицу времени). Используется для вычисления частот Фурье, freqs, в циклах в единицу времени. Значение по умолчанию — 2.
window : вызываемый объект или массив
Функция или вектор длиной NFFT. Для создания векторов окна см.
window_hanning(),window_none(),numpy.blackman(),numpy.hamming(),numpy.bartlett(),scipy.signal(),scipy.signal.get_window()и т.д. Значение по умолчанию —window_hanning(). Если в качестве аргумента передаётся функция, она должна принимать отрезок данных в качестве аргумента и возвращать оконченную версию отрезка.sides : [ ‘default’ | ‘onesided’ | ‘twosided’ ]
Указывает, какие стороны спектра возвращать. Значение по умолчанию соответствует стандартному поведению, которое возвращает односторонний спектр для вещественных данных и двусторонний для комплексных данных. ‘onesided’ принудительно возвращает односторонний спектр, а ‘twosided’ — двусторонний.
pad_to : целое число
Количество точек, до которых дополняется отрезок данных при выполнении БПФ. Это может отличаться от NFFT, которое определяет количество используемых точек данных. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешимыми пиками), это может обеспечить больше точек на графике, что позволит получить больше деталей. Это соответствует параметру n в вызове fft(). Значение по умолчанию — None, которое устанавливает pad_to равным NFFT
NFFT : целое число
Количество точек данных, используемых в каждом блоке для БПФ. Степень двойки обеспечивает наибольшую эффективность. Значение по умолчанию — 256. Не следует использовать для получения нулевого заполнения, иначе масштабирование результата будет неправильным. Используйте pad_to для этого вместо.
detrend : {‘default’, ‘constant’, ‘mean’, ‘linear’, ‘none’} или вызываемый объект
Функция, применяемая к каждому отрезку перед выполнением БПФ, предназначенная для удаления среднего значения или линейной тенденции. В отличие от MATLAB, где параметр detrend — вектор, в matplotlib он — функция. Модуль
pylabопределяетdetrend_none(),detrend_mean(), иdetrend_linear(), но вы можете использовать и пользовательскую функцию. Вы также можете использовать строку для выбора одной из функций. ‘default’, ‘constant’, и ‘mean’ вызываютdetrend_mean(). ‘linear’ вызываетdetrend_linear(). ‘none’ вызываетdetrend_none().scale_by_freq : логическое значение, необязательно
Указывает, следует ли масштабировать возвращаемые значения плотности с помощью частоты масштабирования, что даёт плотность в единицах Hz^-1. Это позволяет интегрировать по возвращаемым частотным значениям. Значение по умолчанию — True для совместимости с MATLAB.
noverlap : целое число
Количество перекрывающихся точек между отрезками. Значение по умолчанию — 0 (без перекрытия).
Возвращает: Pxx : одномерный массив
Значения для спектра мощности
P_{xx}(вещественные)freqs : одномерный массив
Частоты, соответствующие элементам в Pxx
См. также
-
specgram() -
specgram()отличается по умолчанию перекрытием; не возвращает среднее значение периодограмм отрезка; и возвращает время отрезков. -
magnitude_spectrum() -
magnitude_spectrum()возвращает спектр амплитуды. -
csd() -
csd()возвращает спектральную плотность между двумя сигналами.
Ссылки
Bendat & Piersol – Random Data: Analysis and Measurement Procedures, John Wiley & Sons (1986)
-
-
matplotlib.mlab.quad2cubic(q0x, q0y, q1x, q1y, q2x, q2y) -
Преобразует квадратичную кривую Безье в кубическое приближение.
Входными данными являются координаты x и y трёх контрольных точек квадратичной кривой, а выходными — кортеж координат x и y четырёх контрольных точек кубической кривой.
-
matplotlib.mlab.rec2csv(r, fname, delimiter=', ', formatd=None, missing='', missingd=None, withheader=True) -
Сохраняет данные из numpy recarray r в файл с разделителями запятой/пробела/табуляции. Имена типов данных массива записей будут использоваться в качестве заголовков столбцов.
- fname: может быть именем файла или дескриптором файла. Поддержка сжатых файлов с расширением «.gz» автоматическая
- withheader: если withheader — False, не записывать имена атрибутов в первой строке
для типа данных FormatFloat мы переопределяем точность, чтобы сохранить полную точность чисел с плавающей запятой в файле CSV
См. также
-
csv2rec() - Для получения информации о missing и missingd, которые можно использовать для заполнения пропущенных значений в файле CSV.
-
matplotlib.mlab.rec2txt(r, header=None, padding=3, precision=3, fields=None) -
Возвращает текстовое представление массива записей.
Параметры: r: numpy recarray
header: список
заголовки столбцов
padding:
пробел между столбцами
precision: количество десятичных знаков для чисел с плавающей запятой.
Установите целое число, чтобы применить ко всем числам с плавающей запятой. Установите список целых чисел, чтобы применить точность индивидуально. Точность для нечисел с плавающей запятой просто игнорируется.
fields : список
Если не None, список имён полей для вывода. fields может быть списком строк, например, [‘field1’, ‘field2’], или одной строкой, разделенной запятыми, например, ‘field1,field2’
Примеры
Для
precision=[0,2,3], результатом являетсяID Price Return ABC 12.54 0.234 XYZ 6.32 -0.076
-
matplotlib.mlab.rec_append_fields(rec, names, arrs, dtypes=None) -
Возвращает новый массив записей с именами полей, заполненными данными из массивов в arrs. Если добавляется одно поле, то names, arrs и dtypes не должны быть списками. Они могут быть просто самими значениями.
-
matplotlib.mlab.rec_drop_fields(rec, names) -
Возвращает новый массив numpy записей с удаленными полями в names.
-
matplotlib.mlab.rec_groupby(r, groupby, stats) -
r — это массив NumPy с записями
groupby — последовательность имён атрибутов массива записей, которые вместе образуют ключ группировки. Например, (‘date’, ‘productcode’)
stats — последовательность кортежей (attr, func, outname), которые вызовут
x = func(attr)и назначат x массиву записей с атрибутом outname. Например:stats = ( ('sales', len, 'numsales'), ('sales', np.mean, 'avgsale') )Массив записей возврата содержит имена dtype для каждого имени атрибута в аргументе groupby с соответствующими значениями группы и для каждого имени outname в аргументе stats с соответствующим итоговым значением статистики.
-
matplotlib.mlab.rec_join(key, r1, r2, jointype='inner', defaults=None, r1postfix='1', r2postfix='2') -
Объединить массивы записей r1 и r2 по key; key — кортеж имён полей — если key — строка, предполагается, что это имя одного атрибута. Если r1 и r2 имеют одинаковые значения по всем ключам в кортеже key, то их поля будут объединены в новый массив записей, содержащий пересечение полей r1 и r2.
r1 (также и r2) не должно иметь дублирующих ключей.
Ключевое слово jointype может быть ‘inner’, ‘outer’, ‘leftouter’. Чтобы выполнить правое внешнее соединение, просто переставьте r1 и r2.
Ключевое слово defaults — словарь, заполненный
{column_name:default_value}парами.Ключевые слова r1postfix и r2postfix добавляются в качестве суффиксов к именам столбцов (кроме ключей), которые присутствуют как в r1, так и в r2.
-
matplotlib.mlab.rec_keep_fields(rec, names) -
Возвращает новый массив NumPy с записями, содержащий только поля, перечисленные в names
-
matplotlib.mlab.rec_summarize(r, summaryfuncs) -
r — это массив NumPy с записями
summaryfuncs — список кортежей (attr, func, outname), которые применят func к массиву r*[attr] и назначат результат новому имени атрибута *outname. Возвращаемый массив записей идентичен r, с дополнительными массивами для каждого элемента в summaryfuncs.
-
matplotlib.mlab.recs_join(key, name, recs, jointype='outer', missing=0.0, postfixes=None) -
Объединить последовательность массивов записей по ключу в одном столбце.
Эта функция объединяет только один столбец из нескольких массивов записей
- key
- имя столбца, который используется в качестве ключа
- name
- имя столбца, который мы хотим объединить
- recs
- список массивов записей для объединения
- jointype
- строка ‘inner’ или ‘outer’
- missing
- значение, которое подставляет любые отсутствующие поля
- postfixes
- если не None, последовательность постфиксов длиной recs
Возвращает массив записей со столбцами [rowkey, name0, name1, … namen-1]. Или, если указаны постфиксы [PF0, PF1, …, PFN-1], [rowkey, namePF0, namePF1, … namePFN-1].
Пример:
r = recs_join("date", "close", recs=[r0, r1], missing=0.)
-
matplotlib.mlab.rk4(derivs, y0, t) -
Интегрировать 1D или ND систему ОДУ с помощью четвёртого порядка Рунге-Кутты. Это упрощённая реализация, которая может быть полезной, если вы застряли в системе без scipy. В противном случае используйте
scipy.integrate().Параметры: y0
вектор начального состояния
t
временные метки дискретизации
derivs
возвращает производную системы и имеет сигнатуру
dy = derivs(yi, ti)Примеры
Система 2D:
def derivs6(x,t): d1 = x[0] + 2*x[1] d2 = -3*x[0] + 4*x[1] return (d1, d2) dt = 0.0005 t = arange(0.0, 2.0, dt) y0 = (1,2) yout = rk4(derivs6, y0, t)Система 1D:
alpha = 2 def derivs(x,t): return -alpha*x + exp(-t) y0 = 1 yout = rk4(derivs, y0, t)Если у вас есть доступ к scipy, вы, вероятно, должны использовать инструменты scipy.integrate вместо этой функции.
-
matplotlib.mlab.rms_flat(a) -
Возвращает среднеквадратичное отклонение всех элементов a, сглаженное.
-
matplotlib.mlab.safe_isinf(x) -
numpy.isinf()для произвольных типов
-
matplotlib.mlab.safe_isnan(x) -
numpy.isnan()для произвольных типов
-
matplotlib.mlab.segments_intersect(s1, s2) -
Возвращает True, если s1 и s2 пересекаются. s1 и s2 определяются как:
s1: (x1, y1), (x2, y2) s2: (x3, y3), (x4, y4)
-
matplotlib.mlab.slopes(x, y) -
slopes()вычисляет наклон y’(x)Наклон оценивается с помощью наклона параболы, проходящей через любые три последовательные точки.
Этот метод, по крайней мере, в одном аспекте должен быть лучше, чем метод, описанный в приложении к статье A CONSISTENTLY WELL BEHAVED METHOD OF INTERPOLATION Рассела У. Стинэмана (Creative Computing, июль 1980):
Окружности для интерполяции требуют известного соотношения сторон между x- и y-значениями. Однако для многих функций абсциссы задаются в разных измерениях, поэтому соотношение сторон полностью произвольно.Метод параболы даёт очень похожие результаты, что и метод окружностей для большинства обычных случаев, но работает гораздо лучше в особых случаях.
Норберт Немц, Институт теоретической физики, Регенсбургский университет, апрель 2006 Norbert.Nemec at physik.uni-regensburg.de
(вдохновлён оригинальной реализацией Хальдора Бьёрнссона, Исланская метеорологическая служба, март 2006 halldor at vedur.is)
-
matplotlib.mlab.specgram(x, NFFT=None, Fs=None, detrend=None, window=None, noverlap=None, pad_to=None, sides=None, scale_by_freq=None, mode=None) -
Вычислить спектrogramm.
Вычислить и построить спектrogramm данных в x. Данные разбиваются на сегменты длиной NFFT, и вычисляется спектр каждого сегмента. Функция окна window применяется к каждому сегменту, а количество перекрытия каждого сегмента задаётся параметром noverlap.
Параметры: x : array_like
Одномерный массив или последовательность.
Fs : скаляр
Частота дискретизации (образцов в единицу времени). Она используется для вычисления частот Фурье, freqs, в циклах за единицу времени. Значение по умолчанию — 2.
window : вызываемый объект или массив
Функция или вектор длиной NFFT. Для создания векторов окон см.
window_hanning(),window_none(),numpy.blackman(),numpy.hamming(),numpy.bartlett(),scipy.signal(),scipy.signal.get_window()и т.д. По умолчанию используетсяwindow_hanning(). Если в качестве аргумента передается функция, она должна принимать сегмент данных в качестве аргумента и возвращать обработанный сегмент.sides : [ ‘default’ | ‘onesided’ | ‘twosided’ ]
Указывает, какие стороны спектра возвращать. Значение по умолчанию обеспечивает стандартное поведение, которое возвращает односторонний спектр для вещественных данных и двусторонний для комплексных. ‘onesided’ принудительно возвращает односторонний спектр, а ‘twosided’ — двусторонний.
pad_to : целое число
Количество точек, до которых дополняется сегмент данных при выполнении БПФ. Это может отличаться от NFFT, которое определяет количество точек данных, используемых. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешимыми пиками), это может дать больше точек на графике, позволяя получить больше деталей. Соответствует параметру n в вызове fft(). Значение по умолчанию — None, что устанавливает pad_to равным NFFT
NFFT : целое число
Количество точек данных, используемых в каждом блоке для БПФ. Мощность 2 наиболее эффективна. Значение по умолчанию — 256. Не следует использовать для нулевого заполнения, иначе масштабирование результата будет неправильным. Используйте pad_to для этого вместо этого.
detrend : {‘default’, ‘constant’, ‘mean’, ‘linear’, ‘none’} или вызываемый объект
Функция, применяемая к каждому сегменту перед БПФ, предназначенная для удаления среднего значения или линейной тенденции. В отличие от MATLAB, где параметр detrend является вектором, в matplotlib он является функцией. Модуль
pylabопределяетdetrend_none(),detrend_mean(), иdetrend_linear(), но вы также можете использовать пользовательскую функцию. Вы также можете использовать строку для выбора одной из функций. ‘default’, ‘constant’ и ‘mean’ вызываютdetrend_mean(). ‘linear’ вызываетdetrend_linear(). ‘none’ вызываетdetrend_none().scale_by_freq : boolean, необязательно
Указывает, следует ли масштабировать возвращаемые значения плотности на частоту масштабирования, что даёт плотность в единицах Hz^-1. Это позволяет интегрировать по возвращаемым значениям частоты. По умолчанию значение True для совместимости с MATLAB.
noverlap : целое число, необязательно
Количество перекрывающихся точек между блоками. Значение по умолчанию — 128.
mode : строка, необязательно
- Какой тип спектра использовать, по умолчанию ‘psd’.
-
- ‘psd’
-
Возвращает плотность мощности спектра.
- ‘complex’
-
Возвращает комплекснозначный спектр частот.
- ‘magnitude’
-
Возвращает спектр по величине.
- ‘angle’
-
Возвращает спектр фаз без распаковки.
- ‘phase’
-
Возвращает спектр фаз с распаковкой.
Возвращаемые значения: spectrum : array_like
Двумерный массив, столбцы представляют собой периодограммы последовательных сегментов.
freqs : array_like
Одномерный массив, частоты, соответствующие строкам в spectrum.
t : array_like
Одномерный массив, время, соответствующее серединам сегментов (то есть столбцам в spectrum).
См. также
-
psd - отличается перекрытием и значениями возврата.
-
complex_spectrum - аналогично, но с комплексными значениями частот.
-
magnitude_spectrum - аналогично для одного сегмента, когда режим 'magnitude'.
-
angle_spectrum - аналогично для одного сегмента, когда режим 'angle'.
-
phase_spectrum - аналогично для одного сегмента, когда режим 'phase'.
Примечания
detrend и scale_by_freq применяются только в том случае, если mode установлен на ‘psd’.
-
matplotlib.mlab.stineman_interp(xi, x, y, yp=None) -
При заданных векторах данных x и y, векторе наклона yp и новом векторе абсцисс xi, функция
stineman_interp()использует интерполяцию Стенемана для вычисления вектора yi, соответствующего xi.Вот пример, который генерирует грубую синусоидальную кривую, а затем интерполирует по более мелкой шкале абсцисс:
x = linspace(0,2*pi,20); y = sin(x); yp = cos(x) xi = linspace(0,2*pi,40); yi = stineman_interp(xi,x,y,yp); plot(x,y,'o',xi,yi)
Метод интерполяции описан в статье A CONSISTENTLY WELL BEHAVED METHOD OF INTERPOLATION, Р.В. Стенемана. Статья была опубликована в июльском номере 1980 года Creative Computing с примечанием редактора, в котором говорится, что, хотя это не академический журнал, иногда поступают серьезные и оригинальные работы, добавляя, что это, по-видимому, «реальное решение» известной проблемы.
Если yp = None, процедура автоматически определяет наклоны, используя процедуру
slopes().Предполагается, что x отсортирован в порядке возрастания.
Для значений
xi[j] < x[0]илиxi[j] > x[-1], процедура пытается выполнить экстраполяцию. Соответствие полученных данных, конечно, вызывает сомнения…Исходная реализация Халддора Бьёрнссона, Исландское метеорологическое управление, март 2006 halldor at vedur.is
Полностью переработанная и оптимизированная для Python Норбертом Немецом, Институт теоретической физики, Реннский университет, апрель 2006 Norbert.Nemec at physik.uni-regensburg.de
-
matplotlib.mlab.stride_repeat(x, n, axis=0) -
Повторить значения в массиве с высокой эффективностью использования памяти. Массив x складывается вертикально n раз.
Предупреждение
Небезопасно записывать в выходной массив. Несколько элементов могут указывать на один и тот же фрагмент памяти, поэтому изменение одного значения может изменить другие.
Параметры: x : Одномерный массив или последовательность
Массив или последовательность, содержащая данные.
n : целое число
Количество повторений массива.
axis : целое число
Ось, по которой будут выполняться данные.
Ссылки
stackoverflow: Повторить массив NumPy без дублирования данных?
-
matplotlib.mlab.stride_windows(x, n, noverlap=None, axis=0) -
Получить все окна x длиной n как единый массив, используя сдвиги для избежания дублирования данных.
Предупреждение
Небезопасно записывать в выходной массив. Несколько элементов могут указывать на один и тот же фрагмент памяти, поэтому изменение одного значения может изменить другие.
Параметры: x : Одномерный массив или последовательность
Массив или последовательность, содержащая данные.
n : целое число
Количество точек данных в каждом окне.
noverlap : целое число
Перекрытие между соседними окнами. По умолчанию 0 (без перекрытия)
axis : целое число
Ось, по которой будут выполняться окна.
Ссылки
stackoverflow: Перемещающееся окно для одномерных массивов в NumPy? stackoverflow: Использование сдвигов для эффективного фильтра скользящего среднего
-
matplotlib.mlab.vector_lengths(X, P=2.0, axis=None) -
Находит длину набора векторов в n измерениях. Это похоже на функцию
numpy.norm()для векторов, но имеет возможность работать по определённой оси в предоставленном массиве или матрице.Вычисляет
(sum((x_i)^P))^(1/P)для каждого{x_i}, представляющего элементы X вдоль заданной оси. Если axis — None, выполняется вычисление по всем элементам X.
-
matplotlib.mlab.window_hanning(x) -
Возвращает x, умноженный на окно Ханна длиной len(x).
См. также
-
window_none() -
window_none()— это ещё один алгоритм окна.
-
-
matplotlib.mlab.window_none(x) -
Функция окна отсутствует; просто возвращает x.
См. также
-
window_hanning() -
window_hanning()— это ещё один алгоритм окна.
-
© 2012–2017 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/2.1.0/api/mlab_api.html