実現したいこと
計算の中で,高速化を目的として,
scipyのconvolve2dを利用して二次元配列の畳込みを行いたいのですが,
自分の想定している結果にならず困っています.
以下のコードに現状で作成される二次元配列と目標としている二次元配列を示しています.
作成したいのは,畳込みの結果,境界が0もしくはnanで埋めら二次元配列です.
よろしくお願いいたします.
該当のソースコード
Python
1import numpy as np 2from scipy import signal 3 4 5a = np.array([ 6 [1,2,3,4,5,6], 7 [7,8,9,10,11,12], 8 [13,14,15,16,17,18], 9 [19,20,21,22,23,24], 10 [25,26,27,28,29,30], 11 [31,32,33,34,35,36] 12 ]) 13 14f = np.array([ 15 [0,1,0], 16 [0,0,0], 17 [0,0,0] 18 ]) 19 20p = signal.convolve2d(a, f, mode='same') 21print(p) 22#出力される結果 23#[[ 7 8 9 10 11 12] 24 #[13 14 15 16 17 18] 25 #[19 20 21 22 23 24] 26 #[25 26 27 28 29 30] 27 #[31 32 33 34 35 36] 28 #[0 0 0 0 0 0]] 29 30#出力したい配列(畳み込みの範囲外は0やnanで埋めた配列を作成したい) 31#[[0 0 0 0 0 0] 32 #[0 2 3 4 5 0] 33 #[0 8 9 10 11 0] 34 #[0 14 15 16 17 0] 35 #[0 20 21 22 23 0] 36 #[0 0 0 0 0 0]]
試したこと
modeやboudaryなどの引数を変更してみましたが,
出力したい配列が得られませんでした.
回答1件
あなたの回答
tips
プレビュー