我有一个numpy数组,它是以一种复杂的方式交错的,我想不出一种简单的方法去交错它。假设(84132)矩阵为:
0 100 200 ...
1 101 201 ...
2 102 202 ...
...
83 183 283 ...
我想从第一列开始每四个元素,然后从第二行开始每四个元素,然后从第三行开始每四个元素,然后从第四行开始每四个元素。(产生四个新列。)然后我想重复第二列,以此类推。所以我想要的(21528)结果是:
0 1 2 3 100 101 102 103 200 ...
4 5 6 7 104 105 106 107 204 ...
8 9 10 11 108 109 110 111 208 ...
...
80 81 82 83 180 181 182 183 283 ...
我可以通过循环将(84132)数组a
转换为(21528)数组b
:
b = np.zeros(shape=(21, 132*4))
for y in range(0, 21):
for x in range(0, 132):
for s in range(0, 4):
b[y, x * 4 + s] = a[y * 4 + s, x]
有没有更好的方法来完成numpy操作
(上下文:这是8086处理器中微码ROM的物理排列,我正在尝试将位解填充以进行分析。)
你可以这样做:
给出:
在上面省略了元素的情况下,很难看到发生了什么,因此这里是另一个较小阵列(8x12)的情况,其中可以显示所有元素
置换轴并用借用的想法重塑^{} 。-
相关问题 更多 >
编程相关推荐