1 回答
TA贡献1830条经验 获得超3个赞
.T转置矩阵。因此,在您的情况下,如果n=2,您的代码将在没有转置的情况下工作(或至少将无错误运行),因为矩阵如:
>>> np.random.multivariate_normal(mean, cov, size = 2)
array([[ 1.4594626 , -0.55863612],
[-1.17139735, -0.36484634]])
可以拆分为 2 个数组(x将是[ 1.4594626 , -0.55863612]和y将是[-1.17139735, -0.36484634])。请注意,这不一定是您要查找的内容,您最终可能会绘制错误的图(取决于您要尝试做什么)。
但是对于任何更大(或更小)的东西,它不会:
>>> np.random.multivariate_normal(mean, cov, size = 5)
array([[-0.34091962, 2.2368088 ],
[-1.11081547, 0.93089064],
[ 1.45452483, -0.40007311],
[ 0.96038401, 0.26206106],
[ 0.3079481 , 0.66869094]])
因为这本质上是您尝试将 5 个数组解压缩为 2 个变量(因此出现错误)。但是,当您转置它时:
>>> np.random.multivariate_normal(mean, cov, size = 5).T
array([[ 0.04466423, 0.88384196, 0.09108559, -2.30473587, 1.58497064],
[ 0.66190894, 0.90202853, 0.31090378, 0.95697681, -0.61557393]])
你很高兴去。您的x数组将是第一个“行”:[ 0.04466423, 0.88384196, 0.09108559, -2.30473587, 1.58497064]并且y将是您的第二个:[ 0.66190894, 0.90202853, 0.31090378, 0.95697681, -0.61557393]
添加回答
举报