比如我用sklearn的make_blobs数据集,产生三种列表的散点,但它的数据是比较混乱的
[2 1 0 1 2 1 0 1 1 0 0 2 2 0 0 2 2 0 2 2 0 2 2 0 0 0 1 2 2 2 2 1 1 2 0 0 0
0 1 1 2 0 1 0 0 1 2 2 2 1 1 1 0 2 2 2 0 0 1 0 2 1 2 1 2 2 1 2 1 1 1 2 2 0
1 2 1 2 1 1 0 1 0 2 0 0 0 1 0 1 1 1 0 1 0 0 0 1 2 0]
下面就将类别分开,绘图展示
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
import numpy as np
X, y = make_blobs(random_state=42)
print(y)
index_0 = []
index_1 = []
index_2 = []
# 将对应分类下标存到对应列表
for index, i in enumerate(y):
if i == 0:
index_0.append(index)
elif i == 1:
index_1.append(index)
else:
index_2.append(index)
# 按类别提取
x_0 = X[index_0, 0]
y_0 = X[index_0, 1]
x_1 = X[index_1, 0]
y_1 = X[index_1, 1]
x_2 = X[index_2, 0]
y_2 = X[index_2, 1]
plt.scatter(x_0, y_0, label='class 0')
plt.scatter(x_1, y_1, label='class 1')
plt.scatter(x_2, y_2, label='class 2')
plt.xlabel("feature 0")
plt.ylabel("feature 1")
plt.legend()
plt.show()