我正在研究GANs(而且我是python的初学者),我在之前的练习中发现了这部分代码我不明白。具体来说,我不明白为什么使用第 9 行的布尔值(Xk = X[Y == k]),原因我写在下面
class BayesClassifier:
def fit(self, X, Y):
# assume classes are numbered 0...K-1
self.K = len(set(Y))
self.gaussians = []
self.p_y = np.zeros(self.K)
for k in range(self.K):
Xk = X[Y == k]
self.p_y[k] = len(Xk)
mean = Xk.mean(axis=0)
cov = np.cov(Xk.T)
g = {'m': mean, 'c': cov}
self.gaussians.append(g)
# normalize p(y)
self.p_y /= self.p_y.sum()
- 该布尔值根据 Y == k 的真实性返回 0 或 1,因此 Xk 始终是 X 列表的第一个或第二个值。Y 没有找到它的用处。
- 在第 10 行中,len(Xk) 始终为 1,为什么它使用该参数而不是单个 1?
- 下一行的均值和协方差每次只计算一个值。
我觉得我没有理解一些非常基本的东西。