2016-11-25 1 views
0

두 개의 임의 변수 x와 y의 합계의 pdf는 개별 pdfs의 컨볼 루션에 의해 제공됩니다. 다음 코드에서는 각 파일에서 단일 열 데이터를 읽고 히스토그램을 표시합니다. 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을보십시오.

할 일을 다음과 같이

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 모드는 제로 패딩에서 제외됩니다.

+0

감사합니다. 언급했듯이 convolve()는 배열에서 작동하지만 pdf_1과 pdf_2는 튜플입니다. convolve (pdf_1 [0], pdf_2 [0])는 작동하지만 전체 막대 그래프가 아닌 y 축 값만 제공합니다. – kiasari