mlab
matplotlib.mlab
Числовые функции Python, написанные для совместимости с командами MATLAB с одинаковыми именами.
Функции, совместимые с MATLAB
-
cohere() - Когерентность (нормализованная взаимная спектральная плотность)
-
csd() - Взаимная спектральная плотность с использованием усредненного периодограммы Уэлча
-
detrend() - Удаление среднего значения или линии наилучшей подгонки из массива
-
find() - Возвращает индексы, где выполняется некоторое условие; numpy.nonzero аналогичен, но более универсален.
-
griddata() - Интерполяция нерегулярно распределенных данных на регулярную сетку.
-
prctile() - Нахождение процентилей последовательности
-
prepca() - Анализ главных компонент
-
psd() - Плотность спектральной мощности с использованием усредненного периодограммы Уэлча
-
rk4() - Интегратор Рунге-Кутты 4-го порядка для 1D или ND систем
-
specgram() - Спектрограмма (спектр по сегментам времени)
Разные функции
Функции, которых нет в MATLAB, но которые все равно полезны:
-
cohere_pairs() - Когерентность по всем парам. Это не функция MATLAB, но в моей лаборатории мы часто вычисляем когерентность, и мы вычисляем ее для множества пар. Эта функция оптимизирована для эффективного выполнения этой задачи, кэшируя прямые преобразования Фурье.
-
rk4() - Интегратор обыкновенных дифференциальных уравнений (ОДУ) Рунге-Кутты 4-го порядка на случай, если вы окажетесь без 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
См. Примеры misc-
rec2txt() - Красивый вывод массива записей
-
rec2csv() - Сохранение массива записей в файле CSV
-
csv2rec() - Импорт массива записей из файла CSV с проверкой типа
-
rec_append_fields() - Добавляет поле(я)/массив(ы) в массив записей
-
rec_drop_fields() - Удаление полей из массива записей
-
rec_join() - Объединение двух массивов записей по последовательности полей
-
recs_join() - Простой объединение нескольких массивов записей с использованием одного столбца в качестве ключа
-
rec_groupby() - Сводка данных по группам (аналогично SQL GROUP BY)
-
rec_summarize() - Вспомогательный код для фильтрации полей массива записей в новые поля
Для функций просмотра массивов записей (например, 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 -
Основы:
matplotlib.mlab.FormatObj-
tostr(x)
-
-
class matplotlib.mlab.FormatThousands(precision=4) -
Основы:
matplotlib.mlab.FormatFloat
-
class matplotlib.mlab.GaussianKDE(dataset, bw_method=None) -
Основы:
objectПредставление оценки плотности ядра с использованием гауссовских ядер.
Вызов: kde = GaussianKDE(dataset, bw_method='silverman')
Параметры: 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) -
Основы:
objectвычисляет SVD a и хранит данные для PCA. Использует project для проекции данных на уменьшенное множество измерений
Входы:
a: массив numobservations x numdims standardize: True, если входные данные должны быть стандартизированы. Если False, будет выполнена только центровка.Атрибуты:
a: центрированная и нормированная версия входного массива a
numrows, numcols: размеры a
mu: массив numdims средних значений a. Это вектор, который указывает на начало пространства PCA.
sigma: массив numdims стандартных отклонений a
fracs: доля дисперсии каждого из главных компонент
s: собственные значения разложения
Wt: вектор весов для проекции точки или массива numdims в пространство PCA
Y: проекция в пространство PCA
Вектор нагрузок находится в векторе Wt. Например, вектор нагрузок для первой главной компоненты определяется Wt[0]. Эта строка также является первым собственным вектором.
-
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: целое число
- Количество точек, до которых дополняются данные фрагмента при выполнении FFT. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешаемыми пиками), это может обеспечить больше точек в графике, позволяя получить больше деталей. Это соответствует параметру n в вызове fft(). Значение по умолчанию — None, которое устанавливает pad_to равным длине входного сигнала (т. е. без заполнения).
Возвращает кортеж (spectrum, freqs):
- spectrum: одномерный массив
- Значения для углового спектра в радианах (вещественные)
- freqs: одномерный массив
- Частоты, соответствующие элементам в spectrum
См. также
-
complex_spectrum() - Эта функция возвращает значение угла
complex_spectrum(). -
magnitude_spectrum() -
angle_spectrum()возвращает значения амплитуд соответствующих частот. -
phase_spectrum() -
phase_spectrum()возвращает значения развёрнутой версии этой функции. -
specgram() -
specgram()может возвращать угловой спектр сегментов внутри сигнала.
-
matplotlib.mlab.apply_window(x, window, axis=0, return_window=None) -
Применение заданного окна к заданному одномерному или двумерному массиву вдоль заданной оси.
Вызов:
apply_window(x, window, axis=0, return_window=False) *x*: 1D or 2D array or sequence Array or sequence containing the data. *winodw*: function or array. Either a function to generate a window or an array with length *x*.shape[*axis*] *axis*: integer The axis over which to do the repetition. Must be 0 or 1. The default is 0 *return_window*: bool If true, also return the 1D values of the window that was applied
-
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, в которой каждая строка имеет среднее значение 0 и стандартное отклонение 1.
Если dim = 1, операции выполняются по столбцам вместо строк. (dim противоположен аргументу numpy axis).
-
matplotlib.mlab.cohere(x, y, NFFT=256, Fs=2, detrend=, window= , 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: целое число
- Количество точек, до которых дополняется сегмент данных при выполнении FFT. Это может отличаться от NFFT, которое определяет количество точек данных, используемых. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешимыми пиками), это может дать больше точек на графике, что позволит получить больше деталей. Это соответствует параметру n в вызове fft(). По умолчанию None, что устанавливает pad_to равным NFFT.
- NFFT: целое число
- Количество точек данных, используемых в каждом блоке для FFT. Мощность 2 наиболее эффективна. Значение по умолчанию — 256. Этого НЕ следует использовать для получения нулевого заполнения, иначе масштабирование результата будет неправильным. Для этого используйте pad_to.
- detrend: [ ‘default’ | ‘constant’ | ‘mean’ | ‘linear’ | ‘none’] или
- вызываемый объект
Функция, применяемая к каждому сегменту перед вычислением fft, предназначенная для удаления среднего значения или линейной тенденции. В отличие от 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 — частоты вектора когерентности. Для когерентности масштабирование отдельных плотностей по частоте дискретизации не влияет, поскольку множители взаимно уничтожаются.
См. также
-
psd() andcsd() - Для получения информации о методах вычисления
,
и
.
-
matplotlib.mlab.cohere_pairs(X, ij, NFFT=256, Fs=2, detrend=, window= , noverlap=0, preferSpeedOverMemory=True, progressCallback= , returnPxx=False) -
Подпись вызова:
Cxy, Phase, freqs = cohere_pairs( X, ij, ...)
Вычисляет когерентность и фазу для всех пар 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 — необязательный булевый параметр. По умолчанию true. Если False, ограничивает кеширование, создавая только один, а не два, комплексных массива кеша. Это полезно, если память становится критичной. Даже когда preferSpeedOverMemory равен False,
cohere_pairs()по-прежнему обеспечит значительные преимущества производительности по сравнению с вызовомcohere()для каждой пары и будет использовать существенно меньше памяти, чем если preferSpeedOverMemory равен True. В моих тестах с массивом 43000x64 для всех нередундантых пар, preferSpeedOverMemory = True обеспечил прирост производительности на 33% на процессоре Athlon 1.7 ГГц с 512 МБ оперативной памяти по сравнению с preferSpeedOverMemory = False. Но оба решения были более чем в 10 раз быстрее, чем наивное вычисление всех возможных пар черезcohere().Возвращает:
(Cxy, Phase, freqs)
где:
-
Cxy: словарь кортежей (i, j) -> вектор когерентности для этой пары. Например,
Cxy[(i,j) = cohere(X[:,i], X[:,j]). Количество ключей словаря равноlen(ij). - Phase: словарь фаз кросс-спектральной плотности в каждой частоте для каждой пары. Ключи — (i, j).
-
- freqs: вектор частот, равный по длине любому из векторов
-
когерентности или фаз для любого ключа (i, j).
например, для создания графика когерентности Bode:
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() - Для получения информации о методах вычисления
,
и
.
-
Cxy: словарь кортежей (i, j) -> вектор когерентности для этой пары. Например,
-
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: одномерный массив
- Значения для комплексного спектра (комплекснозначные)
- 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. Произведение прямых БПФ 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: целое число
- Количество точек данных, используемых в каждом блоке для БПФ. Степень двойки наиболее эффективна. Значение по умолчанию равно 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, freqs):
- 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: может быть именем файла или файловым дескриптором. Поддержка сжатых файлов в формате .gz автоматическая, если имя файла заканчивается на ‘.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 – см.
examples/loadrec.py
-
matplotlib.mlab.csvformat_factory(format)
-
matplotlib.mlab.demean(x, axis=0) -
Возвращает x минус его среднее значение по указанной оси.
Вызов функции:
demean(x, axis=0) *x*: array or sequence Array or sequence containing the data Can have any dimensionality *axis*: integer The axis along which to take the mean. See numpy.mean for a description of this argument.
См. также
delinear()-
denone() -
delinear()иdenone()- другие алгоритмы удаления тренда. -
detrend_mean() - Эта функция идентична функции
detrend_mean(), за исключением значения по умолчанию axis.
-
-
matplotlib.mlab.detrend(x, key=None, axis=None) -
Возвращает x с удалённым трендом.
Вызов функции:
detrend(x, key='mean') *x*: array or sequence Array or sequence containing the data. *key*: [ 'default' | 'constant' | 'mean' | 'linear' | 'none'] or function Specifies the detrend algorithm to use. 'default' is 'mean', which is the same as :func:`detrend_mean`. 'constant' is the same. 'linear' is the same as :func:`detrend_linear`. 'none' is the same as :func:`detrend_none`. The default is 'mean'. See the corresponding functions for more details regarding the algorithms. Can also be a function that carries out the detrend operation. *axis*: integer The axis along which to do the detrending.См. также
-
detrend_mean() -
detrend_mean()реализует алгоритм ‘mean’. -
detrend_linear() -
detrend_linear()реализует алгоритм ‘linear’. -
detrend_none() -
detrend_none()реализует алгоритм ‘none’.
-
-
matplotlib.mlab.detrend_linear(y) -
Возвращает x минус линию наилучшей подгонки; удаление тренда «линейное».
Вызов функции:
detrend_linear(y) *y*: 0-D or 1-D array or sequence Array or sequence containing the data *axis*: integer The axis along which to take the mean. See numpy.mean for a description of this argument.
См. также
-
delinear() - Эта функция идентична функции
delinear()за исключением значения по умолчанию axis.
-
detrend_none() -
detrend_mean()иdetrend_none()- это другие алгоритмы удаления тренда. -
detrend() -
detrend()- это оболочка вокруг всех алгоритмов удаления тренда.
-
-
matplotlib.mlab.detrend_mean(x, axis=None) -
Возвращает x минус среднее значение(x).
Вызов функции:
detrend_mean(x, axis=None) *x*: array or sequence Array or sequence containing the data Can have any dimensionality *axis*: integer The axis along which to take the mean. See numpy.mean for a description of this argument.
См. также
-
detrend_none() -
detrend_linear()иdetrend_none()- это другие алгоритмы удаления тренда. -
detrend() -
detrend()- это оболочка вокруг всех алгоритмов удаления тренда.
-
-
matplotlib.mlab.detrend_none(x, axis=None) -
Возвращает x: без удаления тренда.
Вызов функции:
detrend_none(x, axis=None) *x*: any object An object containing the data *axis*: integer This parameter is ignored. It is included for compatibility with 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://softsurfer.com/Archive/algorithm_0102/algorithm_0102.htm#Distance%20to%20Ray%20or%20Segment
-
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=, window= ) -
Вычисление случайного суррогата фазы FFT для x.
-
matplotlib.mlab.find(condition) -
Возвращает индексы, где ravel(condition) истинно
-
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) -
строит форматd, гарантирующий наличие ключа для каждого имени типа данных
-
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 : 1d массив_подобный
Координаты точек сетки, из которых нужно интерполировать.
xi, yi : 1d или 2d массив_подобный
Координаты точек сетки, на которые нужно интерполировать.
interp : строковый ключ из {‘nn’, ‘linear’}
Алгоритм интерполяции, либо ‘nn’ для интерполяции естественного соседа, либо ‘linear’ для линейной интерполяции.
Возвращает: 2d массив с плавающей точкой
Массив значений, интерполированных в точках (
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) ведет себя как
norm()— но, удивительно, намного быстрее.
-
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) -
Возвращает логарифм x по основанию 2.
Эта функция _медленная_, но гарантирует возврат правильного целого значения, если входное значение является целым точным числом, являющимся степенью 2.
-
matplotlib.mlab.logspace(xmin, xmax, N) -
Возвращает N значений, логарифмически распределённых между xmin и xmax.
Вызов:
logspace(xmin, xmax, N)
-
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: одномерный массив
- Значения для спектра величин (вещественные значения)
- 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: одномерный массив
- Значения для фазового спектра в радианах (вещественные значения)
- 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, freqs).
- Pxx: одномерный массив
- Значения для спектральной мощности
P_{xx}(вещественные) - freqs: одномерный массив
- Частоты, соответствующие элементам в Pxx
Сноски:
Bendat & Piersol – Случайные данные: анализ и методы измерения, John Wiley & Sons (1986)См. также
-
specgram() -
specgram()отличается по умолчанию перекрытием; не возвращает среднее значение периодограмм сегмента; и возвращает моменты сегментов. -
magnitude_spectrum() -
magnitude_spectrum()возвращает спектр величины. -
csd() -
csd()возвращает спектральную плотность между двумя сигналами.
-
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) -
Сохраняет данные из массива r типа numpy recarray в файл с разделителями запятая/пробел/табуляция. Имена типов данных массива записей будут использованы в качестве заголовков столбцов.
- fname: может быть именем файла или дескриптором файла. Автоматически поддерживается сжатие gzip,
- если имя файла заканчивается на ‘.gz’
- withheader: если withheader — False, не записывать имена атрибутов в первой строке
для формата типа FormatFloat, мы переопределяем точность, чтобы сохранить полную точность чисел с плавающей запятой в CSV-файле
См. также
-
csv2rec() - Для информации о missing и missingd, которые могут использоваться для заполнения пропущенных значений в вашем CSV-файле.
-
matplotlib.mlab.rec2txt(r, header=None, padding=3, precision=3, fields=None) -
Возвращает текстовое представление массива записей.
r: массив numpy записей
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') )Результирующий массив записей содержит имена атрибутов для каждого имени атрибута в аргументе 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) -
Объединить последовательность массивов записей по ключу одного столбца.
Эта функция объединяет только один столбец нескольких массивов записей
- ключ
- имя столбца, используемого в качестве ключа
- имя
- имя столбца, который мы хотим объединить
- recs
- список массивов записей для объединения
- jointype
- строка ‘внутренний’ или ‘внешний’
- 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)
Пример 1
## 2D system 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)Пример 2:
## 1D system 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) -
Вычислить спектログラム.
Вызов:
specgram(x, NFFT=256, Fs=2,detrend=mlab.detrend_none, window=mlab.window_hanning, noverlap=128, cmap=None, xextent=None, pad_to=None, sides='default', scale_by_freq=None, mode='default')Вычислить и отобразить спектログラム данных в x. Данные разбиваются на сегменты длиной NFFT, и вычисляется спектр каждого сегмента. К каждому сегменту применяется функция оконного фильтра window, а количество перекрытия каждого сегмента задаётся параметром noverlap.
- 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: целое число
- Количество точек данных, используемых в каждом блоке для преобразования Фурье. Мощность 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.
- mode: [ ‘default’ | ‘psd’ | ‘complex’ | ‘magnitude’
- ‘angle’ | ‘phase’ ]
Какой тип спектра использовать. Значение по умолчанию — ‘psd’, которое возвращает плотность спектральной мощности. ‘complex’ возвращает комплекснозначный спектр частот. ‘magnitude’ возвращает спектр амплитуд. ‘angle’ возвращает спектр фаз без развязки. ‘phase’ возвращает спектр фаз с развязкой.
- noverlap: целое число
- Количество перекрывающихся точек между блоками. Значение по умолчанию — 128.
Возвращает кортеж (spectrum, freqs, t):
- spectrum: двумерный массив
- столбцы — периодограммы последовательных сегментов
- freqs: одномерный массив
- Частоты, соответствующие строкам в spectrum
- t: одномерный массив
- Времена, соответствующие серединам сегментов (т. е. столбцам в spectrum).
Примечание
detrend и scale_by_freq применяются только при mode = ‘psd’
См. также
-
psd() -
psd()отличается по умолчанию перекрытия; при возвращении среднего значения периодограмм сегмента; и при отсутствии возвращаемых времен. -
complex_spectrum() - Один спектр, аналогичный случаю с одним сегментом при mode = ‘complex’.
-
magnitude_spectrum() - Один спектр, аналогичный случаю с одним сегментом при mode = ‘magnitude’.
-
angle_spectrum() - Один спектр, аналогичный случаю с одним сегментом при mode = ‘angle’.
-
phase_spectrum() - Один спектр, аналогичный случаю с одним сегментом при mode = ‘phase’.
-
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)
Метод интерполяции описан в статье «КОНСИСТЕНТНО ХОРОШО ПОВЕДЕННЫЙ МЕТОД ИНТЕРПОЛЯЦИИ» Рэссела У. Стинемана. Статья была опубликована в июльском выпуске «Creative Computing» 1980 года с примечанием редактора, в котором отмечалось, что, хотя это и не академический журнал, время от времени появляются серьёзные и оригинальные статьи, добавляя, что это «по-видимому, действительно решение» известной проблемы.
Для 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 раз.
Предупреждение
Небезопасно записывать в выходной массив. Несколько элементов могут указывать на один и тот же кусок памяти, поэтому изменение одного значения может изменить другие.
Вызов функции:
stride_repeat(x, n, axis=0) *x*: 1D array or sequence Array or sequence containing the data. *n*: integer The number of time to repeat the array. *axis*: integer The axis along which the data will run.
- Ссылок:
- stackoverflaw: Повторение массива NumPy без дублирования данных?
-
matplotlib.mlab.stride_windows(x, n, noverlap=None, axis=0) -
Получает все окна x длиной n как единый массив, используя сдвиги для избежания дублирования данных.
Предупреждение
Небезопасно записывать в выходной массив. Несколько элементов могут указывать на один и тот же кусок памяти, поэтому изменение одного значения может изменить другие.
Вызов функции:
stride_windows(x, n, noverlap=0) *x*: 1D array or sequence Array or sequence containing the data. *n*: integer The number of data points in each window. *noverlap*: integer The overlap between adjacent windows. Default is 0 (no overlap) *axis*: integer The axis along which the windows will run.
- Ссылок:
- stackoverflaw: Окно скользящего среднего для одномерных массивов в Numpy? stackoverflaw: Использование сдвигов для эффективного фильтра скользящего среднего
-
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 умноженный на окно Ханнанг длины(x).
Вызов функции:
window_hanning(x)
См. также
-
window_none() -
window_none()— это другой алгоритм окна.
-
-
matplotlib.mlab.window_none(x) -
Функция окна отсутствует; просто возвращает x.
Вызов функции:
window_none(x)
См. также
-
window_hanning() -
window_hanning()— это другой алгоритм окна.
-
© 2012–2016 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/1.5.3/api/mlab_api.html