python - 平均一个 3D 阵列以获得较低的分辨率
问题描述
我有一个形状为(100,100,100)的 3D numpy 数组。我想将分辨率降低到(50,50,50)。最快的方法是什么?
所以在一维中我想转
[1, 2, 3, 4, 5, 6]
进入
[1.5, 3.5, 5.5]
一个 2D 的例子是
[[1, 2, 3, 4],
[2, 3, 4, 5],
[1, 2, 3, 4],
[0, 1, 2, 3]]
进入
[[2, 4],
[1, 3]]
解决方案
这是我的解决方案...
def change_resolution(x, dimx, dimy, dimz, N):
x = x.reshape(dimx*N, dimy*N, dimz, N)
x = x.sum(axis=3)/N
x = x.reshape(dimx*N, dimy, N, dimz)
x = x.sum(axis=2)/N
x = x.reshape(dimx, N, dimy, dimz)
x = x.sum(axis=1)/N
return x
dimx 等是新的分辨率,而 dimx*N 是 3D 输入数组 x 的分辨率。
推荐阅读
- java - jUnit 不会抛出预期的异常
- postman - 使用 Postman POST 到 Sentry
- amazon-web-services - API 网关未返回正确的模板
- entity-framework - 多对多 - 实体框架核心 Where 子句
- java - 使用 Jackson 将 CSV 转换为 JSON - 如何删除嵌入在 CSV 列标题中的换行符
- r - 如何在 R 中随时间(24 小时)创建堆积面积图?
- python - MPRIS 与 Python 或 VLC-Python 的集成
- nginx - 是否可以配置 nginx 使 net::ERR_CERT_AUTHORITY_INVALID 不返回给客户端?
- r - 如何将函数应用于每一行?
- python - numpy中的HSV到RGB