0
次の問題があります。行と列を追加して、別のNumpy配列の形に合わせるために、1つのNumpy配列の形状を変更する必要があります。少ないメモリを使用してnumpy配列に行を追加する
さんがこれを変更する必要がある配列であるとしましょう:
change_array = np.random.rand(150, 120)
そして、これが基準配列である:私はゼロを含む行と列を追加している形状を一致させるには
reference_array = np.random.rand(200, 170)
次の関数を使用します。
def match_arrays(change_array, reference_array):
cols = np.zeros((change_array.shape[0], (reference_array.shape[1] - change_array.shape[1])), dtype=np.int8)
change_array = np.append(change_array, cols, axis=1)
rows = np.zeros(((reference_array.shape[0] - change_array.shape[0]), reference_array.shape[1]), dtype=np.int8)
change_array = np.append(change_array, rows, axis=0)
return change_array
f change_arrayをreference_arrayの形に変換します。ただし、このメソッドを使用すると、配列をメモリに2回コピーする必要があります。行と列を追加するスペースを確保するために、Numpyがメモリ内の配列のコピーを作成する必要があることを理解しています。
私の配列が非常に大きくなることがありますので、私は同じ結果を得ることができるより効率的な方法のを探しています。ありがとう!
'。各軸の 'prepend'と' postpend'を行います(合計4つの操作)が、パッドのサイズが0の場合は連結をスキップするのに十分です。Pythonで書かれた非常に汎用的な関数です。 – hpaulj