python - 如何通过重新排序重塑 numpy 数组?
问题描述
我有一个 1 x 2 x 3 数组:
>>> a = np.array([[[1,2,3],[4,5,6]]])
>>> a
array([[[1, 2, 3],
[4, 5, 6]]])
>>> a.shape
(1, 2, 3)
我想将它重塑为(3,1,2),但是沿着原始暗淡 3 的元素现在沿着暗淡 1。我希望结果看起来像这样:
>>> new_a
array([[[1, 4]],
[[2, 5]],
[[3, 6]]])
当我只使用 reshape 时,我得到了正确的形状,但元素的顺序相同,而不是我想要的:
>>> a.reshape((3,1,2))
array([[[1, 2]],
[[3, 4]],
[[5, 6]]])
我怎样才能做到这一点?
解决方案
只需使用np.transpose
-
a.transpose(2,0,1)
样品运行 -
In [347]: a
Out[347]:
array([[[1, 2, 3],
[4, 5, 6]]])
In [348]: a.transpose(2,0,1)
Out[348]:
array([[[1, 4]],
[[2, 5]],
[[3, 6]]])
或者 :
np.moveaxis(a,2,0)
np.rollaxis(a,2,0)
推荐阅读
- c# - 服务总线在 ReceiveAndDelete 模式下成功完成后重新启动消息处理
- mysql - Rails 控制台打印消息和查询需要太多时间来加载
- office365 - PHP Mailer 和 Office 365 配置
- r - R:根据文件名合并数据帧
- flutter - 监听传入的通知 Flutter
- java - Java 排序集合与 DB 提取集合
- java - 在 oracle 中合并 BLOB 数据
- r - 根据R中的字符串匹配在新列中添加标签
- php - 仅当在 WooCommerce 中使用特定优惠券时才适用运费
- apache-kafka - Confluent Kafka Rest 代理 - Avro 反序列化