绘制分类界面以及性能曲面中的meshgrid函数
【摘要】
简 介: 本文讨论了meshgrid产生的三种方法,特别从meshgrid 到点阵列表之间的转换关系。 关键词: meshgrid,mgrid
...
简 介: 本文讨论了meshgrid产生的三种方法,特别从meshgrid 到点阵列表之间的转换关系。
关键词
: meshgrid,mgrid
§01 分类界面
分类器 是 机器学习 、 数据挖掘 中最要的分析方法。在 sklearn中分类器的比较 对比了十种不同的分类器的分类洁面效果。这可帮助我们进一步了解各个分类器的特征。
▲ 图1.1 十种分类器的分类界面
下面对于sklearn中分类器的比较中的分类器显示界面进行初步的测试。
1.1 meshgrid与mgrid
在绘制分类界面以及其他性能曲面的时候,生成格点坐标用来计算曲面每个点的数值,然后才可以进行显示。 从 numpy meshgrid 和 mgrid 的两个简单实例和解析 介绍了生成格点的几种方法。
1.1.1 meshgrid
import sys,os,math,time
import matplotlib.pyplot as plt
from numpy import *
a = list(range(5))
b = list(range(3))
print("a: {}".format(a),"b: {}".format(b))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
a: [0, 1, 2, 3, 4]
b: [0, 1, 2]
- 1
- 2
x,y = meshgrid(a,b)
print("x: {}".format(x), "y: {}".format(y))
- 1
- 2
x: [[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]]
y: [[0 0 0 0 0]
[1 1 1 1 1]
[2 2 2 2 2]]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
x,y = meshgrid(range(5), range(3))
print("x: {}".format(x), "y: {}".format(y))
- 1
- 2
x: [[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]]
y: [[0 0 0 0 0]
[1 1 1 1 1]
[2 2 2 2 2]]
- 1
- 2
- 3
- 4
- 5
- 6
1.1.2 mgrid
(1)基本用法
x,y = mgrid[0:5, 0:3]
print("x: {}".format(x), "y: {}".format(y))
- 1
- 2
x: [[0 0 0]
[1 1 1]
[2 2 2]
[3 3 3]
[4 4 4]]
y: [[0 1 2]
[0 1 2]
[0 1 2]
[0 1 2]
[0 1 2]]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
通过上面对比,可以看到: meshgrid(range(5), range(3)) 与 mgrid[0:5,0:3]所生成的格点矩阵是不同。
(2)声明格点数量
x,y = mgrid[0:5:10j, 0:3:5j]
print("x: {}".format(x), "y: {}".format(y))
- 1
- 2
x: [[0. 0. 0. 0. 0. ]
[0.55555556 0.55555556 0.55555556 0.55555556 0.55555556]
[1.11111111 1.11111111 1.11111111 1.11111111 1.11111111]
[1.66666667 1.66666667 1.66666667 1.66666667 1.66666667]
[2.22222222 2.22222222 2.22222222 2.22222222 2.22222222]
[2.77777778 2.77777778 2.77777778 2.77777778 2.77777778]
[3.33333333 3.33333333 3.33333333 3.33333333 3.33333333]
[3.88888889 3.88888889 3.88888889 3.88888889 3.88888889]
[4.44444444 4.44444444 4.44444444 4.44444444 4.44444444]
[5. 5. 5. 5. 5. ]]
y: [[0. 0.75 1.5 2.25 3. ]
[0. 0.75 1.5 2.25 3. ]
[0. 0.75 1.5 2.25 3. ]
[0. 0.75 1.5 2.25 3. ]
[0. 0.75 1.5 2.25 3. ]
[0. 0.75 1.5 2.25 3. ]
[0. 0.75 1.5 2.25 3. ]
[0. 0.75 1.5 2.25 3. ]
[0. 0.75 1.5 2.25 3. ]
[0. 0.75 1.5 2.25 3. ]]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
当mgrid切片的第三个参数为虚数的时候,它表示对间隔进行细分多少份。
1.1.3 双重[for]循环
xy = [(a,b) for b in range(3) for a in range(5)]
print("xy: {}".format(xy))
- 1
- 2
xy: [(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (0, 2), (1, 2), (2, 2), (3, 2), (4, 2)]
- 1
x1 = [x[0] for x in xy]
x2 = [x[1] for x in xy]
print("x1: {}".format(x1),"x2: {}".format(x2))
- 1
- 2
- 3
x1: [0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
x2: [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2]
- 1
- 2
print(list(zip(*([iter(x1)]*5))))
print(list(zip(*([iter(x2)]*5))))
- 1
- 2
[(0, 1, 2, 3, 4), (0, 1, 2, 3, 4), (0, 1, 2, 3, 4)]
[(0, 0, 0, 0, 0), (1, 1, 1, 1, 1), (2, 2, 2, 2, 2)]
- 1
- 2
1.1.4 meshgrid与坐标对相互转换
(1)meshgrid转换成坐标对
x = mgrid[0:5,0:3]
print("x: {}".format(x),"x.T: {}".format(x.T))
- 1
- 2
x: [[[0 0 0]
[1 1 1]
[2 2 2]
[3 3 3]
[4 4 4]]
[[0 1 2]
[0 1 2]
[0 1 2]
[0 1 2]
[0 1 2]]]
x.T: [[[0 0]
[1 0]
[2 0]
[3 0]
[4 0]]
[[0 1]
[1 1]
[2 1]
[3 1]
[4 1]]
[[0 2]
[1 2]
[2 2]
[3 2]
[4 2]]]
- 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
x = mgrid[0:5,0:3].T.reshape(-1,2)
print("x: {}".format(x))
- 1
- 2
x: [[0 0]
[1 0]
[2 0]
[3 0]
[4 0]
[0 1]
[1 1]
[2 1]
[3 1]
[4 1]
[0 2]
[1 2]
[2 2]
[3 2]
[4 2]]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
(2)坐标对转换成meshgrid
x = x.reshape(3,5,-1).T
print("x: {}".format(x))
- 1
- 2
x: [[[0 0 0]
[1 1 1]
[2 2 2]
[3 3 3]
[4 4 4]]
[[0 1 2]
[0 1 2]
[0 1 2]
[0 1 2]
[0 1 2]]]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
§02 总 结
本文讨论了meshgrid产生的三种方法,特别从meshgrid 到点阵列表之间的转换关系。
■ 相关文献链接:
● 相关图表链接:
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/122142783
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)