明示的に行うことはできない理由はありますか?以下のように:あなたはまた、-1
でそれを行うことができ
>>> 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]])
、それだけで適切なサイズの別の引数とペアにする必要があります。
>>> 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配列として扱うのは最も簡単です。
+1。これはNumpy配列の中にリストを保持するよりはるかに簡単です。 –
はい。私が欠けていたのは、私が本当に3次元の配列、48x365x3を持っているということです。私は3つが影響を受けていないと仮定していましたが、npは(正しく)3次元として扱いました。余分な次元をnp.reshape(-1,3)に保つことで問題は解決します。ありがとう –