python中的运算符@?什么是?

5lwkijsr  于 2023-02-21  发布在  Python
关注(0)|答案(2)|浏览(211)

我已经用Python编程很多年了,但是现在我在阅读一个做Linnear回归的程序,我发现了这个。

if X.ndim == 1:
        X = X[:, None]
    d = X - self.mean
    precision = np.linalg.inv(self.var)
    return (
        np.exp(-0.5 * np.sum(d @ precision * d, axis=-1))
        * np.sqrt(np.linalg.det(precision))
        / np.power(2 * np.pi, 0.5 * self.ndim))

这个代码中的@是什么?

bxjv4tth

bxjv4tth1#

它是PEP-465中描述的矩阵乘法运算符,最初在Python 3.5中提供。

xzabzqsa

xzabzqsa2#

如果**@**出现在语句的中间,那么它就是一个矩阵乘法。

    • 示例:**
class Mat(list):
def __matmul__(self, B):
    A = self
    return Mat([[sum(A[i][k]*B[k][j] for k in range(len(B)))
                for j in range(len(B[0])) ] for i in range(len(A))])

A = Mat([[2,3],[7,5]])
B = Mat([[4,8],[3,6]])

print(A @ B)
    • 输出:**
[[17, 34], [43, 86]]

干杯!

相关问题