私は1d配列に平坦化したいnumpyの3d配列を持っています。私は配列の各2次元 "レイヤー"を平坦化し、各連続するレイヤーを1次元配列にコピーしたいと思います。numpyで3次元に沿って平坦化する方法は?
たとえば、arr[:, :, 0] = [[1, 2], [3, 4]]
との配列の場合、出力は[1, 2, 3, 4, 5, 6, 7, 8]
になります。
現在、私は次のコードを持っている:
out = np.empty(arr.size)
for c in xrange(arr.shape[2]):
layer = arr[:, :, c]
out[c * layer.size:(c + 1) * layer.size] = layer.ravel()
は(for
ループを使用せずに)numpyの中で効率的にこれを実現する方法はありますか?私はreshape
、transpose
、そしてflatten
を使いこなしてみました。