对齐N维numpy数组

时间:2016-02-04 21:03:20

标签: python arrays numpy

我将数据放在numpy数组中进行比较。它们存储数据的方式有时尺寸不正常。例如,如果第一阵列具有形状(10,20,30,40),则有时第二阵列将具有形状(10,20,40,30)。我们可以假设尺寸的长度是唯一的。

是否有一种简单的方法可以将第二个数组的形状转换为第一个数组的形状而不事先知道尺寸的数量或尺寸的长度?我想我可以通过一系列的elif语句和转置操作来实现,但我希望有更清晰的方法。

1 个答案:

答案 0 :(得分:0)

使用shape.index查找每个轴的位置,然后使用转置重新排序轴:

import numpy as np
A = np.ones((10, 20, 40, 30))
B = np.ones((10, 20, 30, 40))

new_order = [A.shape.index(i) for i in B.shape]
B = B.transpose(new_order)