gpt4 book ai didi

python - 将 `numpy.linalg.det` 作为方法添加到 `numpy.matrix`

转载 作者:行者123 更新时间:2023-11-28 17:50:33 26 4
gpt4 key购买 nike

我想写 M.det() 而不是 numpy.linalg.det(M),所以我这样做了:

numpy.matrix.det = numpy.linalg.det

它奏效了。

对这个程序有什么要说的吗?


例子:

import numpy as np
np.matrix.det = np.linalg.det
M = np.matrix([[1,2],[3,4]])
print M.det()

正确输出:-2.0

最佳答案

这叫做 monkey patching .它可能适用于这种特殊情况,但它会使您的程序难以遵循,因为 det 方法仅存在于您的程序中,并且没有在任何地方记录。此外,它依赖于 np.matrix 实现细节,特别是它是一个纯 Python 类,并不适用于所有类:

>>> numpy.ndarray.det = numpy.linalg.det
------------------------------------------------------------
Traceback (most recent call last):
File "<ipython console>", line 1, in <module>
TypeError: can't set attributes of built-in/extension type 'numpy.ndarray'

我不建议这样做;它使您的程序更难阅读和维护,而且确实没有理由不编写 from numpy.linalg import det,然后是 det(A) 而不是 A。 det().

关于python - 将 `numpy.linalg.det` 作为方法添加到 `numpy.matrix`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10959050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com