【发布时间】:2016-12-06 10:57:25
【问题描述】:
当我使用 R diag(0.03,2) 时,我得到:
[,1] [,2]
[1,] 0.03 0.00
[2,] 0.00 0.03
如何在 Python 中获得相同的结果?我尝试了numpy.diag(0.03,2),但出现错误:ValueError: Input must be 1- or 2-d。与numpy.diagonal(0.03,2)相同
感谢您的帮助
【问题讨论】:
当我使用 R diag(0.03,2) 时,我得到:
[,1] [,2]
[1,] 0.03 0.00
[2,] 0.00 0.03
如何在 Python 中获得相同的结果?我尝试了numpy.diag(0.03,2),但出现错误:ValueError: Input must be 1- or 2-d。与numpy.diagonal(0.03,2)相同
感谢您的帮助
【问题讨论】:
做numpy.diag([.03]*2)。
numpy.diag() 接受对角线组件的列表,您可以在 python 中将列表相乘以重复元素。
【讨论】:
np.diag(np.full(2, 0.3)),它的优点是不会创建内存效率低的python列表,至少对于N>>2
np.eye(2) * .03 或np.identity(2) * .03 也会产生相同的结果,尽管这相当于R 中的diag(2) * 0.3。