This piece of code is for plotting a series of data by coloring by the classes they belong to. `X_train` is an array `(115,2)` and `Y_train` is another array `(115,)` with their respective scope values. My question is what does `[Y_train == i]` do exactly?

```
colors = ["red", "greenyellow", "blue"]
for i in range(len(colors)):
    xs = X_train[:, 0][Y_train == i]
    ys = X_train[:,1][Y_train == i]
    plt.scatter(xs, ys, c = colors[i])

plt.legend(iris.target_names)
plt.xlabel("Sepal length")
plt.ylabel("Sepal width") 

```