python - 沿每个轴将 n 维数组拆分为 2D 数组
问题描述
所以说我有一个任意维度的数组(现在,我们将给它三个维度)。
a=array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]],
[[16, 17, 18, 19],
[20, 21, 22, 23]]])
将这个数组拆分为跨所有不同轴的二维数组(在这种情况下为 n-1 但为 2)列表的最简单方法是什么,即。
new_array1=[[0, 1, 2, 3,], [4, 5, 6, 7]...[20, 21, 22, 23]]
new_array2=[[0, 4], [1, 5]...[19, 23]]
new_array3=[[0, 8, 16], [1, 9, 17]...[7, 15, 23]]
对于任意维度的数组,是否有一种简单的方法可以做到这一点?
解决方案
第一个:
a1 = [j for i in range(3) for j in a[i]]
第二个:
a2 = [list(zip(i[0], i[1])) for i in a]
第三个:
a3 = [list(zip(a[0][j], a[1][j], a[2][j])) for j in range(2)]
推荐阅读
- javascript - 如何防止在html输入字段中插入值之前
- javascript - NodeJS 在开玩笑测试中写入标准输入
- html - 滚动条显示在页面底部
- macos - 录制屏幕时如何减少ffmpeg上的CPU使用率(Mac)
- twilio - Twilio IVR 基于呼叫者 ID 进行拆分
- python - Featuretools 与非唯一连接键的关系
- shell - 在单行 solaris 中计算匹配的出现次数
- python - 尝试安装 postgis 时出现错误:“postgis_lib_version”或附近的语法错误
- java - 在java中使用while循环的星号金字塔
- javascript - 如何在 D3 中重用两个(或更多)链式转换序列