Python(.T)中的语法


72

在SciPy中用于多元正态采样函数的帮助资源中,他们给出了以下示例:

x,y = np.random.multivariate_normal(mean,cov,5000).T

我的问题很基本:最终的.T实际上做什么?

非常感谢,我知道这很简单,但是很难在Google中找到“ .T”。


8
对此进行谷歌搜索的秘密是将其用引号引起来。当然,当我用Google搜索它时,我得到了此页面!
Kallaste

我希望这可以帮助遇到它的其他人,但是可以.T 转轴的顺序,而不是切换最后两个轴。也就是说,如果您的数组x是3-D,x.T则与相同x.transpose((2, 1, 0))。如果要切换最后两个轴,则可以这样做x.transpose((0, 2, 1))
Hameer Abbasi '18

Answers:


83

.T访问属性T的对象,这恰好是一个NumPy的阵列组成。该T属性是数组的转置,请参见文档

显然,您正在平面中创建随机坐标。的输出multivariate_normal()可能如下所示:

>>> np.random.multivariate_normal([0, 0], [[1, 0], [0, 1]], 5)  
array([[ 0.59589335,  0.97741328],
       [-0.58597307,  0.56733234],
       [-0.69164572,  0.17840394],
       [-0.24992978, -2.57494471],
       [ 0.38896689,  0.82221377]])

该矩阵的转置为:

array([[ 0.59589335, -0.58597307, -0.69164572, -0.24992978,  0.38896689],
       [ 0.97741328,  0.56733234,  0.17840394, -2.57494471,  0.82221377]])

其可以在方便地分离xy份序列拆包。



0

import numpy as np
a = [[1, 2, 3]]
b = np.array(a).T  # ndarray.T The transposed array. [[1,2,3]] -> [[1][2][3]]
print("a=", a, "\nb=", b)
for i in range(3):
    print(" a=", a[0][i])  # prints  1 2 3
for i in range(3):
    print(" b=", b[i][0])  # prints  1 2 3 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.