在numpython中矢量化QR

2024-09-28 21:02:04 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在尝试矢量化numpy中的QR分解,正如文档所建议的here,但是我一直遇到维度问题。我对我做错了什么感到困惑,因为我相信以下是文件。有人知道这有什么问题吗:

import numpy as np
X = np.random.randn(100,50,50)

vecQR = np.vectorize(np.linalg.qr)

vecQR(X)

Tags: 文件文档importnumpyhereasnprandom
2条回答

文档中写道:“默认情况下,pyfunc假定使用标量作为输入和输出。”。 所以你需要给它签名:

vecQR = np.vectorize(np.linalg.qr, signature='(m,n)->(m,p),(p,n)')

np.linalg.qr映射到arr的第一个轴怎么样?地址:

In [35]: np.array(list(map(np.linalg.qr,  X)))
Out[35]: 
array([[[[-3.30595447e-01, -2.06613421e-02,  2.50135751e-01, ...,
           2.45828025e-02,  9.29150994e-02, -5.02663489e-02],
         [-1.04193390e-01, -1.95327811e-02,  1.54158438e-02, ...,
           2.62127499e-01, -2.21480958e-02,  1.94813279e-01],
         [ 1.62712767e-01, -1.28304663e-01, -1.50172509e-01, ...,
           1.73740906e-01,  1.31272690e-01, -2.47868876e-01]

相关问题 更多 >