【问题标题】:what is an equivalent of matlab permute(A, [3 2 1]) in python?python中matlab permute(A, [3 2 1]) 的等价物是什么?
【发布时间】:2015-03-14 05:48:11
【问题描述】:

如果A 是一个2x2 数组,那么在MATLAB 中permute(A, [3 2 1]) 在python 中的等效表达式是什么?

谢谢

【问题讨论】:

  • 假设Anumpy 数组shape (2,2)
  • 如果您提供示例输入和输出,这个问题将会大大改善。例如A = [[1, 2], [3, 4]]。我想得到B = ...

标签: python matlab numpy octave


【解决方案1】:

您正在寻找numpy.transpose

np.transpose( np.expand_dims(A, axis=2), (2, 1, 0) )

由于默认情况下numpy 没有尾随单例维度,您需要使用np.expand_dims 显式添加它

否则np.expand_dims(A, axis=2) 的简写是A[:, :, None] 所以

np.transpose(A[:, :, None], (2,1,0))

【讨论】:

  • 上述语句给出了一条错误消息,因为 A 是 2x2 数组。比如说,A = np.array([[1,2],[3,4]])。
  • 然后,np.transpose(a,(2,1,0)) 给出以下错误信息:-------- -------------------------------------------------- ----- ValueError Traceback (最近一次调用最后) in () ----> 1 np.transpose(a,(2,1,0)) /opt /local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/fromnumeric.pyc in transpose(a, axes) 535 除了 AttributeError: 536 return _wrapit(a, ' transpose', axes) --> 537 return transpose(axes) ValueError: axes don't match array
  • 在 matlab 中,上面的命令产生 1x2x2 矩阵,a[:,:,1] = 1 2, a[:,:,2] = 3 4. 我怎样才能在蟒蛇?
  • 是的,你是对的!缺乏维度给了我一个问题,我很高兴现在知道了方法。
  • 不错!我想知道你将如何在numpy 中做到这一点。谢谢夏!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 2020-08-28
  • 1970-01-01
  • 1970-01-01
  • 2011-12-18
  • 1970-01-01
  • 2022-11-11
相关资源
最近更新 更多