2016-11-25 11 views
0

pdf суммы двух случайных величин x и y задается сверткой отдельных pdf-файлов. В следующем коде я читаю данные из одного столбца из каждого файла и показываю гистограммы. Как я могу вычислить свертку pdf1 и pdf2.Свертка двух pdf

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() 

ответ

1

Вы можете использовать scipy.signal.convolve для вычисления свертки между двумя сериями. Посмотрите документацию here.

Do следующим образом:

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") 

NB: Вы имеете доступ к другим режимам, чтобы вычислить свертку. Режим valid не используется при нулевом заполнении.

+0

спасибо. Как вы упомянули, convolve() работает с массивами, но pdf_1 и pdf_2 являются кортежами. convolve (pdf_1 [0], pdf_2 [0]), но он дает только значения оси y, а не целую гистограмму. – kiasari