混淆python运算符

混淆python运算符,python,Python,我遇到过这段代码,我似乎无法理解它 def _conditional_distribution(self, m, w): """ Conditional distribution (vector of size n_topics). """ vocab_size = self.nzw.shape[1] left = (self.nzw[:,w] + self.beta) / \ (self.nz + self.beta * vocab

我遇到过这段代码,我似乎无法理解它

def _conditional_distribution(self, m, w):
    """
    Conditional distribution (vector of size n_topics).
    """
    vocab_size = self.nzw.shape[1]
    left = (self.nzw[:,w] + self.beta) / \
           (self.nz + self.beta * vocab_size)
    right = (self.nmz[m,:] + self.alpha) / \
            (self.nm[m] + self.alpha * self.n_topics)
    p_z = left * right
    # normalize to obtain probabilities
    p_z /= np.sum(p_z)
    return p_z
/\是什么意思?有人能告诉我这个代码转换成什么等式吗

作为参考,我相信m和w都只是整数


谢谢

/
是除法运算符<代码>\用于行连续。这与:

left = (self.nzw[:,w] + self.beta) / (self.nz + self.beta * vocab_size)

只写两行而不是一行。

/
是除法运算符,
\
是将当前行继续到下一行。它们在一起时看起来很奇怪。

换行符之前的反斜杠将在下一行继续,就好像换行符不在那里一样

使用多行的更具可读性的方法是使用括号,如下所示:

left = ((self.nzw[:,w] + self.beta) /
           (self.nz + self.beta * vocab_size))
right = ((self.nmz[m,:] + self.alpha)
         / (self.nm[m] + self.alpha * self.n_topics))
或者像这样:

left = ((self.nzw[:,w] + self.beta) /
           (self.nz + self.beta * vocab_size))
right = ((self.nmz[m,:] + self.alpha)
         / (self.nm[m] + self.alpha * self.n_topics))

如果括号中没有结束符,Python将继续在下一行进行解析。

这是一个换行符(用/is表示除法,\ is表示换行符),值得注意的是,PEP-8强烈建议不要使用这种换行符,因为括号中暗示了这一点,因此,更改这些行的拆分方式将使其更具可读性。谢谢,几分钟后将接受。。。我会用谷歌搜索这个,但搜索操作员可能很困难。