python - 将 2D 元组重塑为 1D
问题描述
我有一个元组(32 x 120):
示例 (4x120)
[ [1, 2, 3, 4, .... , 118, 119, 120],
[2, 3, 4, 5, .... , 119, 120, 121],
[3, 4, 5, 6, .... , 120, 121, 122],
[4, 5, 6, 7, .... , 121, 122, 123] ]
我想要一个这样的向量:
[1,2,3,4, 2,3,4,5, 3,4,5,6, 4,5,6,7, ..... 118,119,120,121, 119,120,121,122, 120,121,122,123]
任何想法?
解决方案
一种快速简便的方法是在 Numpy 中执行此操作,因为您可以简单地将数组转置T
,然后flatten()
将其转换为一维数组。
import numpy as np
x = np.array([ [1, 2, 3, 4 118, 119, 120],
[2, 3, 4, 5, 119, 120, 121],
[3, 4, 5, 6, 120, 121, 122],
[4, 5, 6, 7, 121, 122, 123] ] )
print(x.T.flatten())
给
array([ 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6, 4,
5, 6, 7, 118, 119, 120, 121, 119, 120, 121, 122, 120, 121,
122, 123])
如果你想要它作为一个列表而不是一个数组,它会是x.T.flatten().tolist()
对于非 Numpy 解决方案,您可以使用以下方法:
[inner for outer in zip(*x) for inner in outer]
它返回与上面相同的输出。
推荐阅读
- python - 尝试安装 python 包时出错
- matlab - 在MATLAB中,使用如下函数,为什么分类准确率(acc1,acc2)计算的不一样?
- ios - iTunes 应用程序链接不适用于 WkWebview
- kubernetes - 使用 OpenShift 进行卷挂载的写入权限
- jquery - Django + JQuery - 将条形附加到表行
- javascript - AWS S3 Javascript SDK - 如何在特定的 lastModified 日期之后列出对象?
- anaconda - conda update conda 失败:除了一条无用的消息,什么也没有发生
- hybris - 如何覆盖除自定义之外的 hybris 平台文件
- oracle - Spring Data JPA 2.0.9 版本的多数据库配置
- wordpress - 在 PLESK 调度任务上取消定义函数 get_field()