两个pdf的卷积

Convolution of two pdf

两个随机变量 x 和 y 之和的 pdf 由各个 pdf 的卷积给出。在下面的代码中,我从每个文件中读取单列数据并显示直方图。如何计算 pdf1 和 pdf2 的卷积。

import pandas as pd

import matplotlib.pyplot as plt

data1 = pd.read_csv('file1.txt', header=None)

data2 = pd.read_csv('file2.txt', header=None)

nbins = int(data1.max()-data1.min())

pdf1 = plt.hist(data1, bins=nbins, normed=True)


nbins = int(data2.max()-data2.min())

pdf2 = plt.hist(data2, bins=nbins, normed=True)

plt.show()

您实际上可以使用 scipy.signal.convolve 来计算两个系列之间的卷积。查看文档 here.

进行如下操作:

from scipy.signal import convolve

# Define your arrays of data
pdf_1 = plt.hist(data1, bins=nbins, normed=True)
pdf_2 = plt.hist(data2, bins=nbins, normed=True)

# Convolve the two arrays
pdf_1_2 = convolve(pdf_1, pdf_2, mode="valid")

注意: 您可以使用其他模式来计算卷积。 valid 模式不使用零填充。