別のnumpy配列処理の質問:私は約を持っています。2000³ エントリの固定サイズ (私が知っている) の numpy 配列で、整数が含まれています。配列を別の整数でパディングして、すべての次元で囲まれるようにします。この整数は、パディング プロセス全体で固定されています。
example (2D)
1----->000
010
000
その結果につながる 2 つのアイデアがあります。
パディングされた値を含むより大きなnumpy配列を作成し、パディングされた古い領域を「スライス」します。
padded=np.zeros((z+2,x+2,y+2)) padded[1:z+1,1:x+1,1:y+1]=olddata
np.insert または hstack,vstack,dstack を使用して値を追加します。
padded=np.insert(data,0,0,axis=0) padded=np.insert(data,x+1,0,axis=0) etc.
問題は、これらすべてのメソッドがインプレースではなく、新しい配列を割り当てる (1.) か、古い配列をコピーする (2.) ことです。パディングをインプレースで行う方法はありますか? numpy 1.7以降であることは知っています。numpy.pad モジュールがあります。しかし、それはある種の割り当てとオーバーライドも使用しているようです(私の方法のように)。