Python语法np.c_分析、np.meshgrid、plt.pcolormesh和分类器

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]]

可以看出,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]]

可以看出,np.r_是按行排列的。

2、np.meshgrid

当传入的参数为:  [1 2 3] ,[4 5 6 7]时
 传回的第一个矩阵为:
 [[1 2 3]
 [1 2 3]
 [1 2 3]
 [1 2 3]]
 传回的第二个矩阵为:
[[4 4 4]
 [5 5 5]
 [6 6 6]
 [7 7 7]]

可以看出,也就是会生成两个3×4的矩阵,其中3为第一个的数据项,4为第二个参数的数据项。只不过是将行复制几次,或者列复制几次给你返回操作。该函数主要作用是对坐标的x,y的网格遍历。
在这里插入图片描述

xx, yy = np.meshgrid(np.arange(xmin, xmax , h), np.arange(ymin, ymax, h))

3、plt.pcolormesh

用来将网格数据进行上处理:

plt.pcolormesh(xx,yy,z,cmap=cmap_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]]))
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值