Matplotlib的几个典型绘制实验

举报
tsinghuazhuoqing 发表于 2021/12/26 00:31:43 2021/12/26
【摘要】   ➤01 不同线性绘制 x = arange(0, 3.0, 0.1) plt.plot(x, sin(x), 'r--', x, x*2, 'c1', x, x**2, 'b+') ...

 

01 不同线性绘制


x = arange(0, 3.0, 0.1)
plt.plot(x, sin(x), 'r--', x, x*2, 'c1', x, x**2, 'b+')

  
 
  • 1
  • 2

▲ 几款不同绘制线型结果

▲ 几款不同绘制线型结果

在MATPLOTLIB中对于绘制曲线的颜色定义参见: MATPLOTLIB中的颜色定义


▲ MATPLOTLIB中的颜色定义

▲ MATPLOTLIB中的颜色定义

 

02 多图绘制


x1 = arange(0.1, a, 0.1)
x2 = arange(0.1, a, 0.05)

plt.subplot(211)
plt.plot(x1, f1(x1), 'go', x2, f2(x2), 'k')
plt.grid(True)

plt.subplot(212)
plt.scatter(x2, f2(x2))

plt.grid(True)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

▲ 多图绘制演示

▲ 多图绘制演示

 

03 绘制散点图示意图


random.seed(int(time.time()))

N = 100
x = random.rand(N)
y = 10 * x**2 + random.rand(N) * a

colors = random.rand(N)
areas = (20 * random.rand(N)) ** 2

plt.clf()
plt.scatter(x, y, s=areas, c=colors, alpha=0.5)
plt.xlabel("x")
plt.ylabel("y")
plt.grid(True)
plt.tight_layout()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

▲ 散点图示例

▲ 散点图示例

 

04 五个优雅的NumPy库函数


五个优雅的Numpy函数 中Baijayyanta Roy介绍了几个Numpy中用于机器学习和数据科学工程的函数。

1.reshape()中的-1参数

Numpy 允许我们根据给定的新形状重塑矩阵,新形状应该和原形状兼容。有意思的是,我们可以将新形状中的一个参数赋值为-1。这仅仅表明它是一个未知的维度,我们希望 Numpy 来算出这个未知的维度应该是多少:Numpy 将通过查看数组的长度和剩余维度来确保它满足上述标准。让我们来看以下例子:
▲ reshape函数使用-1参数的效果

▲ reshape函数使用-1参数的效果

2.argpartion()

Numpy 的 argpartion 函数可以高效地找到 N 个最大值的索引并返回 N 个值。在给出索引后,我们可以根据需要进行值排序。

▲ argpartion在数组中寻找最大的N个元素

▲ argpartion在数组中寻找最大的N个元素

比如获得结果中最大的两个数值所对应的索引:

AA = argpartition(A,-2)[-2:]

  
 
  • 1
  • 举例:
A = random.rand(10)
printff('A=',A)

AA = argpartition(A,-2)[-2:]
printff('AA=',AA)
printff('A[AA]=',A[AA])

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
A= [0.96815066 0.83087994 0.23400677 0.8570243  0.19535788 0.19072486 0.66225419 0.8177829  0.45656971 0.95308762]
AA= [9 0]
A[AA]= [0.95308762 0.96815066]

  
 
  • 1
  • 2
  • 3

下面是使用sort(), argsort()达到同样功能的示例。不过,使用argpartition的效率比sort的效率高。

A = random.rand(10)
printf(A)

AA = argsort(A)
printf(AA)
printf(A[AA])

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
A = [0.72849843 0.79820074 0.96036724 0.22006177 0.2128844  0.31795377  0.36778209 0.03589072 0.1460506  0.67651717]
argsort = [7 8 4 3 5 6 9 0 1 2]
A[AA]= [0.03589072 0.1460506  0.2128844  0.22006177 0.31795377 0.36778209 0.67651717 0.72849843 0.79820074 0.96036724]

  
 
  • 1
  • 2
  • 3

3.clip()函数:

在很多数据处理和算法中(比如强化学习中的 PPO),我们需要使得所有的值保持在一个上下限区间内。Numpy 内置的 Clip 函数可以解决这个问题。Numpy clip () 函数用于对数组中的值进行限制。给定一个区间范围,区间范围外的值将被截断到区间的边界上。例如,如果指定的区间是 [-1,1],小于-1 的值将变为-1,而大于 1 的值将变为 1。

▲ 限制数组中的最小值为2,最大值为6

▲ 限制数组中的最小值为2,最大值为6

4. extract:寻找数组中符合条件的元素

我们可以使用 Numpy extract () 函数从数组中提取符合条件的特定元素。

5.setdiff1d()

返回数组中不在另一个数组中的独有元素。这等价于两个数组元素集合的差集。

原文链接:https://towardsdatascience.com/5-smart-python-numpy-functions-dfd1072d2cb4

文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuoqing.blog.csdn.net/article/details/110083016

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。