python - 将 numpy 数组重塑为所需的形状
问题描述
我在 numpy 工作,并且有一个 numpy 形式的数组;
[[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12],
[13, 14, 15],
[16, 17, 18],
[19, 20, 21],
[22, 23, 24]]
我只想使用 reshape 和 transpose 函数并获得以下数组:
[[ 1, 2, 3, 7, 8, 9, 13, 14, 15, 19, 20, 21],
[ 4, 5, 6, 10, 11, 12, 16, 17, 18, 22, 23, 24]]
这可以做到吗?我已经花了几个小时尝试并且开始认为它无法完成 - 我是否遗漏了一些明显的东西?
解决方案
你可以重塑成列,然后转置,然后用类似的东西重塑:
a = np.array([[ 1,2,3],
[ 4,5,6],
[ 7,8,9],
[10, 11, 12],
[13, 14, 15],
[16, 17, 18],
[19, 20, 21],
[22, 23, 24]])
a.reshape(-1, 2, 3).transpose((1, 0, 2)).reshape(2, -1)
# array([[ 1, 2, 3, 7, 8, 9, 13, 14, 15, 19, 20, 21],
# [ 4, 5, 6, 10, 11, 12, 16, 17, 18, 22, 23, 24]])
推荐阅读
- ios - 无法生成位码包(存档时),因为静态框架 (.framework) 是在没有完整位码的情况下构建的
- dynamics-crm - Dynamics 365 CRM 与电话公司网站连接
- php - PHP联系表单发送但不接收电子邮件
- java - 将日期作为参数传递
- html - primeng,p 表列“重新排序”不起作用
- ios - 带有动画的自定义 UIButton 类
- spring-boot - 使用数据和多部分文件配置 Spring Boot url
- java - Spring-data-jpa:线程安全的唯一插入
- angular - 如何从茉莉花中的角度访问或添加模板引用变量
- c# - 将数据从服务器传递到winform应用程序?