1、np.c_和np.r_
直接上代码:
多维的数据:
d = np.array([[1, 2, 3], [4, 5, 6]])
c = np.array([[4,5,6],[7,8,9]])
print(np.c_[d,c])
[[1 2 3 4 5 6]
[4 5 6 7 8 9]]
一维的数据:
d = np.array([1, 2, 3])
c = np.array([4,5,6])
print(np.c_[d,c])
[[1 4]
[2 5]
[3 6]]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
可以看出,np.c_是将数据按列排列
下面看np.r_的格式:
一维数据:
d = np.array([1, 2, 3])
c = np.array([4,5,6])
print(np.r_[d,c])
[1 2 3 4 5 6]
二维数据:
d = np.array([[1, 2, 3],[4,5,6]])
c = np.array([[4,5,6],[7,8,9]])
print(np.r_[d,c])
[[1 2 3]
[4 5 6]
[4 5 6]
[7 8 9]]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
可以看出,np.r_是按行排列的。
2、np.meshgrid
当传入的参数为: [1 2 3] ,[4 5 6 7]时
- 1
传回的第一个矩阵为:
[[1 2 3]
[1 2 3]
[1 2 3]
[1 2 3]]
传回的第二个矩阵为:
[[4 4 4]
[5 5 5]
[6 6 6]
[7 7 7]]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
可以看出,也就是会生成两个3×4的矩阵,其中3为第一个的数据项,4为第二个参数的数据项。只不过是将行复制几次,或者列复制几次给你返回操作。该函数主要作用是对坐标的x,y的网格遍历。
xx, yy = np.meshgrid(np.arange(xmin, xmax , h), np.arange(ymin, ymax, h))
- 1
3、plt.pcolormesh
用来将网格数据进行上处理:
plt.pcolormesh(xx,yy,z,cmap=cmap_1)
- 1
其中,xx和yy为点位信息,z为点位信息对应cmap中的第几个颜色。
4、KNN分类器
import sklearn
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
import sklearn.datasets as data
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
if __name__ == '__main__':
iris = data.load_iris()
x_train = iris.data[:,:2]
y_train = iris.target
k = 15
h = 0.02
cmap_1 = ListedColormap(['#FF0000','#00FF00','#0000FF'])
cmap_2 = ListedColormap(['#FFAA00','#AAFF00','#00AAFF'])
myKnn = KNeighborsClassifier(k)
myKnn.fit(x_train,y_train)
xmin, xmax = x_train[:,0].min() - 1, x_train[:,0].max() - 1
ymin, ymax = x_train[:,1].min() - 1, x_train[:,1].max() - 1
print(xmin)
print(ymin)
xx, yy = np.meshgrid(np.arange(xmin, xmax , h), np.arange(ymin, ymax, h))
z = myKnn.predict(np.c_[xx.ravel(),yy.ravel()])
z = z.reshape(yy.shape)
plt.pcolormesh(xx,yy,z,cmap=cmap_1)
plt.scatter(x_train[:,0],x_train[:,1], c = y_train, cmap=cmap_2 )
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.show()
# print(np.array([[1,2,3],[4,5,6]]))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30