python - 将numpy数组从(1000,1000,3)重塑为(3,1000,1000)并返回
问题描述
我有一个形状为 (3,1000,1000) 的 numpy 数组,我不得不将其更改为 (1000,1000,3) 以进行一些图像处理。我现在需要重塑回 (3,1000,1000) 保留原始位置,但我无法弄清楚如何去做。这是一个例子:
import numpy as np
arr1 = np.array([1] * 1000000).reshape(1000,1000)
arr2 = np.array([2] * 1000000).reshape(1000,1000)
arr3 = np.array([3] * 1000000).reshape(1000,1000)
arr_list = list((arr1,arr2,arr3))
arr = np.array(arr_list).reshape(3,1000,1000)
arr_d = np.dstack(arr_list)
arr
是阵列的原始形状,而arr_d
是图像处理所需的形状。本质上, 中的每个原始二维矩阵arr
都是 中的一列arr_d
。现在我需要从arr_d
to返回arr
,保留这些值。
解决方案
我相信这就像转置 arr_d 一样简单
>>> np.array_equal(arr, arr_d.T)
True
推荐阅读
- php - 更新 mysqli 表时如何更新 $_SESSION 变量?
- python - 在列表列表中分别计算每个子列表的平均值
- javascript - 从 api 获取数据并操作状态
- python - 我才开始用 python 编码大约一个月。我可以覆盖以前解析的数据吗?问题在体内继续
- python-3.x - 在 Python 中实现 Typescript 接口
- jwt - Flask 会话和 JSON Web 令牌之间的区别
- python - 四阶导数 - 我的图表是错误的,请告诉我我的错误
- c++ - 是否可以在 C++ 中执行以下编译时编程任务
- python - 关于使用 python 读取大约 1600 万行的巨大 csv 文件
- oracle - AWS DMS(数据迁移服务) - 复制停止且没有错误