假设 a
是 Python 中的一个列表。
a = [1,2,3]
当矩阵转置应用于a
时,我们得到:
np.matrix(a).transpose()
matrix([[1],
[2],
[3]])
我希望将这个功能泛化,并通过一个示例来说明我想要做什么。让 b
成为另一个列表。
b = [[1, 2], [2, 3], [3, 4]]
在
a
中,列表项是 1、2 和 3。我希望将 [1,2]
、[2,3]
和 [3,4]
中的每个元素视为 b
中的列表项,仅用于执行转置操作。我希望输出如下:array([[[1,2]],
[[2,3]],
[[3,4]]])
一般来说,我希望能够指定列表项的外观,并基于此执行矩阵转置。
我可以编写几行代码来完成上述操作,但我提出这个问题的目的是想找出是否有内置的numpy功能或pythonic方法来完成此操作。
编辑:unutbu的输出与我以上的输出相匹配。然而,我想要一个适用于更一般情况的解决方案。我在下面发布了另一个输入/输出。我的初始示例不足以传达我想要表达的内容。让b
中的项目为[1,2]
、[2,3]
、[3,4]
和[5,6]
。那么下面给出的输出将对更高维度元素进行矩阵转置。更一般地说,一旦我描述了“项”的外观,我想知道是否有一种方法可以执行类似于转置的操作。
Input: b = [[[1, 2], [2, 3]], [[3, 4], [5,6]]]
Output: array([[[1,2], [3,4]],
[[2,3], [5,6]]])