您是否有理由无法明确执行此操作?如:
>>> 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,只需将它与另一个适当大小的arg配对即可。
>>> 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数组是最简单的。



