2016-04-05 15 views
0

numpyを使用して2つの同じ次元の行列をコンボリューションしたい。 ウィキペディアのexampleによると、これは可能な操作です。numpyを使用して2つの同じサイズの行列をコンボリューションする

import numpy as np 

f = np.array([[45, 60, 98], 
       [46, 65, 98], 
       [47, 65, 96]]) 

h = np.array([[ 0.1, 0.1, 0.1], 
       [ 0.1, 0.2, 0.1], 
       [ 0.1, 0.1, 0.1]]) 

print np.convolve(f,h) 

console output

なぜ私はこのエラーを取得していますか?

+1

です.2D convについては、scipyのバージョンを参照してください。ナンシーのものは1Dだけです。 – Divakar

+0

は意味がありますが、scipy.convolve(...)は同じ出力を与えます。だから問題はどこかにある。 – KilianK

+0

scipy.convolve2d? – Divakar

答えて

1

試してみてください。

import scipy.signal 
import numpy as np 

f = np.array([[45, 60, 98], 
       [46, 65, 98], 
       [47, 65, 96]]) 

h = np.array([[ 0.1, 0.1, 0.1], 
       [ 0.1, 0.2, 0.1], 
       [ 0.1, 0.1, 0.1]]) 

print scipy.signal.convolve2d(f, h, 'valid') 

それはあなたのイメージで説明した畳み込みを実装する必要があります。

出力はnp.array([[ 74.5]])

関連する問題