混淆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强烈建议不要使用这种换行符,因为括号中暗示了这一点,因此,更改这些行的拆分方式将使其更具可读性。谢谢,几分钟后将接受。。。我会用谷歌搜索这个,但搜索操作员可能很困难。