明示的にできない理由はありますか?のように:
>>> a = numpy.arange(17520 * 3).reshape(48, 365, 3)
>>> a.reshape((17520,3))
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
...,
[52551, 52552, 52553],
[52554, 52555, 52556],
[52557, 52558, 52559]])
でそれを行うこともできます-1
。適切なサイズの別の引数とペアにする必要があります。
>>> a.reshape((17520,-1))
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
...,
[52551, 52552, 52553],
[52554, 52555, 52556],
[52557, 52558, 52559]])
また
>>> a.reshape((-1,3))
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
...,
[52551, 52552, 52553],
[52554, 52555, 52556],
[52557, 52558, 52559]])
少し後で、レコード配列を作成することもできることに気付きました。これは、状況によっては適切な場合があります。
a = numpy.recarray((17520,), dtype=[('x', int), ('y', int), ('z', int)])
これは、あなたが試した元の方法で形を変えることができますreshape(-1)
。それでも、larsmansのコメントが言うように、データを3D配列として扱うのが最も簡単です。