您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中重塑一个numpy数组

在Python中重塑一个numpy数组

您是否有理由无法明确执行此操作?如:

>>> 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]])
@H_301_4@

您也可以使用-1@H_301_4@,只需将它与另一个适当大小的arg配对即可。

>>> a.reshape((17520,-1))
array([[    0,     1,     2],
       [    3,     4,     5],
       [    6,     7,     8],
       ..., 
       [52551, 52552, 52553],
       [52554, 52555, 52556],
       [52557, 52558, 52559]])
@H_301_4@

要么

>>> a.reshape((-1,3))
array([[    0,     1,     2],
       [    3,     4,     5],
       [    6,     7,     8],
       ..., 
       [52551, 52552, 52553],
       [52554, 52555, 52556],
       [52557, 52558, 52559]])
@H_301_4@

不久我想到您也可以创建一个记录数组-在某些情况下这可能是合适的:

a = numpy.recarray((17520,), dtype=[('x', int), ('y', int), ('z', int)])
@H_301_4@

可以按照您尝试的原始方式(即)进行重塑reshape(-1)@H_301_4@。不过,正如larsmans的评论所言,将数据视为3d数组是最简单的。

python 2022/1/1 18:42:37 有276人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶