異なる形状の2つの配列を追加したいが、放送しないで、「欠落している」値はゼロとして扱われる。形の異なる配列を追加する
[1, 2, 3] + [2] -> [3, 2, 3]
または
[1, 2, 3] + [[2], [1]] -> [[3, 2, 3], [1, 0, 0]]
のような例でおそらく最も簡単な私は事前に図形を知りません。
それぞれのnp.shapeの出力を混乱させています。それらの両方を保持する最小の形状を見つけようとしています。それらの形状のゼロエイド配列にそれぞれ埋め込み、それらを追加します。しかし、それはむしろたくさんの仕事のようですが、より簡単な方法はありますか?
ありがとうございます!
編集:私は「私のために多くの作業を」意味「多くの作業」によってではなく、マシンのために、私はむしろ効率よりも優雅さを求めて:私の努力それらの両方を保持している最小の形状を得ることが
def pad(a, b) :
sa, sb = map(np.shape, [a, b])
N = np.max([len(sa),len(sb)])
sap, sbp = map(lambda x : x + (1,)*(N-len(x)), [sa, sb])
sp = np.amax(np.array([ tuple(sap), tuple(sbp) ]), 1)
です
ないきれい: -/
ありがとう、それはかなり滑らかです – n00b