【问题标题】:Transpose list subset dimension?转置列表子集维度?
【发布时间】:2016-06-29 21:06:35
【问题描述】:

我有一个包含 2 个单元格的列表,每个单元格都是 3 维数组,一个是 3 x 4 x 5,另一个是 6 x 7 x 8。需要将列表中的子集转置为:5 x 4乘3,8乘7乘6,我用array.transpose([2,1,0]),得到错误axes don't match

【问题讨论】:

  • 使用numpy.swapaxes
  • @MadPhysicist 会尝试,但现在我遇到了另一个问题,当我从 h5py 读取文件时似乎缺少一个轴
  • 打印你的数组的形状,你正在运行的命令,你得到的实际的、完整的错误。您的 cmets 与您在问题中所说的不符。

标签: python arrays list numpy transpose


【解决方案1】:

尝试改用numpy.ndarray.transpose() 函数。似乎这更接近您要查找的内容。

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

【讨论】:

  • 使用 ndarray,我得到了错误:只有长度为 1 的数组可以转换为 Python 标量。
  • @xman 使用np.asarray(input_list) 将列表转换为数组,然后尝试swapaxestranspose
  • @Divakar 我现在遇到了另一个问题,我从“*.mat”读取的 h5py 文件现在有 2 个单元格(每个单元格都是 3 维,3*4*5 和 6*7*8)在 np.array() 之后只剩下第 2 和第 3 个轴,并且维度似乎像 (2*4*5) 和 (2*7*8)。
  • @xman 我的错!我似乎错误地回答了你的问题。所以,我认为你可以分别处理每个单元格。因此,如果输入列表名为input_list,则可以在input_list[0] 上使用swapaxestranspose 等等。
  • 我阅读.mat的方式在这里:link
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 1970-01-01
相关资源
最近更新 更多