以R语言实现的Python线性代数例程。
项目描述
®️ rlinalg

以R语言实现的Python线性代数例程。
🗺️ 概述
The R Project for Statistical Computing provides an environment for using and developing statistical methods. Most of the array manipulation and linear algebra routines are implemented using LAPACK, which can be accessed in Python using SciPy and NumPy.
然而,当尝试将 R 语言中的代码移植到 Python 并重新生成时,人们会注意到几个例程的实现存在差异,尤其是在启用了转置的 QR 分解 方面。
> mat <- t(matrix(seq_len(9), nrow=3))
> qr.Q(mat)
[,1] [,2] [,3]
[1,] -0.1230915 0.9045340 0.4082483
[2,] -0.4923660 0.3015113 -0.8164966
[3,] -0.8616404 -0.3015113 0.4082483
>>> mat = numpy.arange(1, 10).reshape(3, 3)
>>> scipy.linalg.qr(mat, pivoting = True)[0]
array([[-0.2672612 0.8728716 0.4082483]
[-0.5345225 0.2182179 -0.8164966]
[-0.8017837 -0.4364358 0.4082483]])
这里的罪魁祸首是 R 语言中的 qr
函数默认不使用 LAPACK 的 dgeqp3
,而是使用一个修改过的、针对 R 语言的特有版本 LINPACK 例程 dqrdc
(dqrdc2
),该例程优化了转置策略。这意味着使用 R 中的 qr
函数的代码将不同于等效的 Python 使用 LAPACK 的代码,并且(直到现在)没有方法来重现 R 的行为。
rlinalg
库通过使用 Fortran 源代码提供 R 语言的线性代数例程,以允许可重复性。它提供了一个类似于 scipy
接口的 API(对于类似函数如 qr
、cond
、lstsq
),可用于获得与 R 相同的结果。
>>> mat = numpy.arange(1, 10).reshape(3, 3)
>>> rlinalg.qr(mat).Q.round(7)
array([[-0.1230915 0.904534 0.4082483]
[-0.492366 0.3015113 -0.8164966]
[-0.8616404 -0.3015113 0.4082483]])
此库依赖于 NumPy 和系统上可用的 BLAS 库。它适用于所有现代 Python 版本(3.7+)。使用 Meson 进行构建,并且从源代码编译时需要 Fortran 编译器。
🔧 安装
直接从 PyPi 安装 rlinalg
包,该网站提供通用轮子,可以使用 pip
进行安装。
$ pip install rlinalg
💭 反馈
⚠️ 问题追踪器
发现了一个错误?有增强请求吗?如果您需要报告或询问某些内容,请访问 GitHub 问题追踪器。如果您正在提交错误报告,请尽可能提供关于问题的详细信息,并尝试在简单、易于复现的情况下重现相同的错误。
📋 更新日志
此项目遵循 语义版本控制,并在 保持更新日志 格式的 更新日志 中提供更新。
⚖️ 许可证
此库根据 GNU 通用公共许可证 v3.0 或更高版本提供。它包含一些来自 R 语言的代码,这些代码根据 GNU 通用公共许可证 v2.0 或更高版本进行许可。一些测试是根据 SciPy 修改的,SciPy 在 BSD-3-clause 许可证下开发。
本项目与 R
项目 无任何关联、赞助或任何形式的认可。它是由 Martin Larralde 在 莱顿大学医学中心 的 Zeller 实验室 进行博士项目期间开发的。
项目详情
rlinalg-0.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d8af86782666bfe9d1a5475549d1f0e52928739909dc42ffc71b084f25dda2c3 |
|
MD5 | 69c191a7b457736d91315daa2faedb66 |
|
BLAKE2b-256 | 5efd52c89af015f196a5c5797c070f706912c587c6a2852dc933146a7c8c9f43 |
rlinalg-0.1.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 657035fb74350e8e26ef36dbd7c78cdfff60d9f381f944781ac22cc61b2fd79e |
|
MD5 | 4ceed1588e91c07c72eb6801ea0b87a4 |
|
BLAKE2b-256 | 6e65c2aa83473b420e7f93ea6ffc7ebfdf5310db1733a689f8716ad9c65ceef1 |
rlinalg-0.1.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 061914a5b2609fc5ea486908052407a8b084c427722af32c2539b84857dd3f4e |
|
MD5 | b6bd3009ea708b42dfcab77c51c59aad |
|
BLAKE2b-256 | 73a4b26a78d9615605b3b609c07f477765b217cdd26b62a1c86129eafb09596c |
rlinalg-0.1.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d170e69a17ce87db4697f44c5d9978af8670dee222c9530257266fd29a95f046 |
|
MD5 | 8482cff08c9f05cbf81fadbc843a901b |
|
BLAKE2b-256 | 04f8d260574822ef995ea98f3c55ce767ba1484399ee78c6fe8f93683d8e5e3b |
rlinalg-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9a2226c1e7d05d0fe3b57c9be11b96779375ffcb0de432b5fd0949b62128739d |
|
MD5 | 131caea69adc37ea26d6b0de5780560b |
|
BLAKE2b-256 | a1b2374f0ad0e4e92333e043c2e21d05999eb1ab7ff56c36251b6370fdbda5bf |
rlinalg-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 799e15a302310885f4eb13fd806a68d2fd17015391744bb84f841a1e94594d7e |
|
MD5 | 935b8bc377141f5a718408d8ee9c309e |
|
BLAKE2b-256 | 4570dc6a8da0c4726522fd5ed3d90b1bbe048fa6f6ab173cbd3c5963c1f4652b |
rlinalg-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6f444f765504982120779e9e110ed0ec86c7db1ff3bb972663252ed474f40d59 |
|
MD5 | 8784197235c754912340116b70fa55d3 |
|
BLAKE2b-256 | 8c8eafd1d0a1ab3d01da15363b8e3e72b96e4818befbef13136867698c24430b |
rlinalg-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | be00753e1c3f31f0d0e6344778d24c92dfbb2060b3942e31b994e07bf3d6a430 |
|
MD5 | 3c4d4f5ba8b83958a6edd5cadb52ef24 |
|
BLAKE2b-256 | 15468bf756e69bcd4b725fbc4c6a5f16e0f87a6dc41cea6a1650c71d8bf8ab51 |
rlinalg-0.1.1-cp39-cp39-manylinux_2_28_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e0d2181d825e163bdd355f57a98622ff0d346266df85f01a7dbc1cd3b80061e4 |
|
MD5 | d4408fa20c556ec0e1b1481c394fd2fb |
|
BLAKE2b-256 | 77cf1e22247ef8dc54f41a6aa7eb688b94d38e0173bdfa37e3d45a0a2263c382 |
rlinalg-0.1.1-cp38-cp38-manylinux_2_28_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c50d7759c3123d8116f8ecb8d1d47eb6b33b68f913c48eb4ab48d4cfb79ed1b8 |
|
MD5 | c4b4164443d1e8c1a72b6e12372ff5ea |
|
BLAKE2b-256 | e9e88603ef696885684d9df55dbe7e55fff82e23c60d0d0528ae8f37874d88d6 |
rlinalg-0.1.1-cp37-cp37m-manylinux_2_28_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3841aa988ca252b5dd2c4341fb88bdbb4c02437d6aa6124dc4937b460cf5ddc5 |
|
MD5 | ee84cc55ef7c13b2b2be217a866ae66d |
|
BLAKE2b-256 | 2b7ac613af747768359fd8ce469631c8bef6ff2e051b8f55a66759741cb8ba45 |