【问题标题】:Equivalent diag R function in numpy pythonnumpy python中的等效diag R函数
【发布时间】: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)相同

感谢您的帮助

【问题讨论】:

    标签: python r numpy diagonal


    【解决方案1】:

    numpy.diag([.03]*2)

    numpy.diag() 接受对角线组件的列表,您可以在 python 中将列表相乘以重复元素。

    【讨论】:

    • 这个的另一种拼写方式是np.diag(np.full(2, 0.3)),它的优点是不会创建内存效率低的python列表,至少对于N>>2
    • 似乎np.eye(2) * .03np.identity(2) * .03 也会产生相同的结果,尽管这相当于R 中的diag(2) * 0.3
    猜你喜欢
    • 1970-01-01
    • 2018-02-20
    • 2014-05-31
    • 2019-07-18
    • 2021-04-13
    • 1970-01-01
    • 2020-03-18
    • 2019-02-09
    • 2013-03-25
    相关资源
    最近更新 更多