2016-06-29 38 views
1

我有一个有2个单元格的列表,他们每个是3维数组,一个是3乘4乘5,另一个是6乘7 8。需要转置列表中的子集如:5乘4由3和8乘以7乘6,我用array.transpose([2,1,0]),得到了错误axes don't match转置列表子集的维度?

+0

使用'numpy.swapaxes'。 –

+0

@MadPhysicist会尝试,但现在我得到了另一个问题,当我从h5py读取文件时,似乎缺少一个轴 – xman

+0

打印阵列的形状,正在运行的命令,实际的完整错误。您的评论与您在问题中所说的内容不符。 –

回答

2

尝试使用numpy.ndarray.transpose()函数代替。看起来这更接近你要找的东西。

文档: http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.transpose.html

+0

使用ndarray,我得到了错误:只有长度为1的数组可以转换为Python标量。 – xman

+0

@xman使用'np.asarray(input_list)'将列表转换为数组,然后尝试'swapaxes'或'transpose'。 – Divakar

+0

@Divakar我现在又得到了一个问题,我用2个单元格(每个3维,3 * 4 * 5和6 * 7 * 8)从“* .mat”读取的h5py文件现在只剩下第2和第3轴在np.array()之后,维度看起来像(2 * 4 * 5)和(2 * 7 * 8)。 – xman