gpt4 book ai didi

arrays - 在numpy中转置矩阵

转载 作者:行者123 更新时间:2023-12-04 15:26:01 24 4
gpt4 key购买 nike

我有这个 numpy 数组:

a = np.array([[[1,2,3],[-1,-2,-3]],[[4,5,6],[-4,-5,-6]]])
ba 的转置.我希望 b 是这样的:
b = np.array([[[1,-1],[2,-2],[3,-3]],[[4,-4],[5,-5],[6,-6]]])

是否可以在一行中完成?

编辑:

如果我有这个:
a = np.empty(3,dtype = object)

a[0] = np.array([[1,2,3],[-1,-2,-3]])

a[1] = np.array([[4,5,6],[-4,-5,-6]])

我怎样才能得到b?

最佳答案

你可以使用 np.transpose(a,(0,2,1)) :

In [26]: a = np.array([[[1,2,3],[-1,-2,-3]],[[4,5,6],[-4,-5,-6]]])

In [27]: b = np.transpose(a,(0,2,1))

In [28]: print a
[[[ 1 2 3]
[-1 -2 -3]]

[[ 4 5 6]
[-4 -5 -6]]]

In [29]: print b
[[[ 1 -1]
[ 2 -2]
[ 3 -3]]

[[ 4 -4]
[ 5 -5]
[ 6 -6]]]

对于您编辑的问题,数组为 dtype=object -- 没有直接的方法来计算转置,因为 numpy 不知道如何转置通用对象。但是,您可以使用列表理解并分别转置每个对象:
In [90]: a = np.empty(2,dtype = object)

In [91]: a[0] = np.array([[1,2,3],[-1,-2,-3]])

In [92]: a[1] = np.array([[4,5,6],[-4,-5,-6]])

In [93]: print a
[[[ 1 2 3]
[-1 -2 -3]] [[ 4 5 6]
[-4 -5 -6]]]

In [94]: b = np.array([np.transpose(o) for o in a],dtype=object)

In [95]: print b
[[[ 1 -1]
[ 2 -2]
[ 3 -3]]

[[ 4 -4]
[ 5 -5]
[ 6 -6]]]

关于arrays - 在numpy中转置矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8384775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com