两个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
模式不使用零填充。
两个随机变量 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
模式不使用零填充。