Python中的运算符@是什么?它有什么作用?

3

我已经用Python编程多年了,但现在我在阅读一个执行线性回归的程序时发现了这个内容。

    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))

这段代码中的@符号是什么意思?

这并不是一个完全重复的问题,但那个问题包含了你所需要的所有信息。 - david.pfx
2个回答

5

0
如果语句中间提到了@,则表示矩阵乘法。 例如:
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]]

干杯!!!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接