numpy与matplotlib 常用日常代码

news2025/1/12 20:44:02

matplotlab 和 numpy 可能是python 数据处理工作中用的最多的库了, 官网的文档十分详细,但是就是因为数量庞大,很多时候常用的功能和生僻冷门的功能混在一起,找不到重点。按照二八原则,掌握20%的功能就已经能应付绝大多数的场景了,这里我展示了一些自己常用的一些功能。

一、matplotlab

官方文档

  1. 用 axis 对象画一张图,axis 这个对象可以对途中的坐标轴、刻度、图例、标题进行操作,建议长期使用这个对象,尽量挖掘它的功能,习惯了之后很有用,不要直接用plt.plot()。
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig, axis = plt.subplots()
axis.plot(x, y)
axis.set_title("aplitude")
axis.set_xlabel("time/s")
axis.set_ylabel("amplitude")
plt.show()

在这里插入图片描述
2. 一幅图中画两条曲线,并加上图例

fig, axis = plt.subplots()
axis.plot(x, y, label='this will be legend?')
axis.plot(x, y **2, label='this will be legend2?')
axis.legend()
axis.set_title("Sine Wave")
axis.set_xlabel("time/s")
axis.set_ylabel("amplitude")
plt.show()

在这里插入图片描述
3. 在一个 figure中使用多个子图,这个在深度学习很有用,比如可视化数据集中的一些小图

fig, axs = plt.subplots(2,3)
axs[0,0].plot(x, y, label='aa')
axs[0,0].plot(x, y*2, label='bb')
axs[0,0].set_title('linear')
axs[0,0].legend()

axs[0,1].plot(x, y**2)
axs[0,2].plot(x, y**3)
axs[1,0].plot(x, y**4)
axs[1,1].plot(x, y**5)
axs[1,2].plot(x, y**6)
plt.show()

在这里插入图片描述

二、Numpy 和 Matplotlab

  1. 半透明透明度的rbga 图片
# construct a rgba red image with numpy
import numpy as np
import matplotlib.pyplot as plt
# set alpha to 0.8
fig, axis = plt.subplots(1, 5)
for i in range(0,  5):
    im = np.zeros((100,100,4), dtype=np.uint8)
    im[:,:,0] = 255
    im[:,:,3] = (i+1)*255/5
    axis[i].imshow(im)
    axis[i].axis('off')
plt.show()

在这里插入图片描述

  1. 各种功能混和展示
import numpy as np
import random
import matplotlib.pyplot as plt
from math import sqrt
pi = 3.14159
h,w = 60,80

# 生成一个白布背景
white_blackground = np.full((h,w,3), 100, dtype=np.uint8)
fig, axis = plt.subplots(2,3)
axis[0][0].imshow(white_blackground)
# 生成像素颜色随机的rgb图片
random_color = np.random.randint(255, size=(h,w,3), dtype=np.uint8)
axis[0][1].imshow(random_color)
# 生成一张rgba图片
rgb_pic = np.zeros(shape=(h,w,4), dtype=np.uint8)
rgb_pic[:] = (255, 0, 0, int(0.7 * 255))
axis[0][2].imshow(rgb_pic)
# 生成像素颜色随机的灰度图片
random_gray = np.random.randint(255, size=(h,w, 1), dtype=np.uint8)
axis[1][0].imshow(random_gray, cmap="gray")
# 生成一个左白右黑的渐变图片
half_black = np.zeros((h,w),dtype=np.uint8)
half_black[:, :w//2] = 255
axis[1][1].imshow(half_black, cmap='gray')
# 生成一个强度满足高斯分布的灰度图片
raw = np.zeros((h,w), dtype=np.float32)
center = (h/2, w/2)
for i in range(h):
    for j in range(w):
        raw[i][j] =  sqrt((i-center[0]) ** 2 + (j - center[1]) ** 2)
def normal(X, scale=1.0):
    Y = -1 * (X ** 2 )/ (2 * scale ** 2)
    Y = np.exp(Y) / (sqrt(2* pi * scale))
    return Y
Y = normal(raw, scale=10.0) 
axis[1][2].imshow(Y)
plt.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/897367.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无法打开程序因为msvcp140.dll丢失,msvcp140.dll丢失的解决方法

前几天看到有小伙伴再问什么是msvcp140.dll文件,相信很多人都不知道这是什么吧,如果电脑msvcp140.dll文件丢失的话会怎么样呢?丢失了应该如何找回呢?其实这些都是一些比较常见的电脑知识,我们是需要去了解一下的&#…

Spring Framework中的Bean生命周期

目录 一.Bean生命周期的简介 1.基本概念 2.Spring生命周期的几大阶段 3.注意点及小结 4.生活案例 5.Spring容器管理JavaBean的初始化过程 二. Bean的单例选择与多例选择 1.单例选择与多例选择的优缺点 1.1单例模式的优点: 1.2单例模式的缺点: 1…

HC32L110的串口不定长接收及PCA和IRQ的部分问题

show you the code: https://gitee.com/yangfei_addoil/hc32-l110-b6-test 另:程序中使用帕斯卡命名法的是从官方例程上复制的;使用下划线命名法的是博主的; 串口不定长接收 注意串口要自己绑定/指定到一个定时器上&#xff1b…

【仿写tomcat】一、tomcat工作流程

仿写tomcat 简介tomcat简介流程分析tomcat是怎么和访问者交互的?流程图 简介 作者前不久刚仿写了一个简易的tomcat,在此分享给各位,此篇为对tomcat的简介和流程分析,具体仿写内容后续会贴在这里 扫描java文件,获取带…

基于IMX6ULLmini的Linux裸机开发系列六:中断向量表

ARMv7-A 一级查表 等中断真正发生的时候,自动跳转指定位置(基址偏移) 习惯放在代码的起始地方,复位中断放在代码的零地址,被定义的指定中断放在代码的第四个字节的位置 addrTYPEFUNCTIONMODE0x00Reset复位中断SVC0x04Undefined instructi…

Vue-13.创建完整的Vue项目(vue+vue-cli+js)

前言 之前写了命令创建Vue项目,但是事实上我们可以直接用编译器直接创建项目,这里我使用webstorm(因为我是前后端兼修的所以我习惯使用Idea家族的编译器) 只写前端的推荐用VsCode前后端都写的推荐用webstorm 新建项目 项目初始…

31.Netty源码之客户端启动流程

highlight: arduino-light 客户端启动主要流程 如果看了服务器端的启动流程,这里简单看下就可以了。 java package io.netty.server; ​ import io.netty.bootstrap.Bootstrap; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import …

酒店要如何应对旅游旺季?报修工单管理系统哪家好?

酒店在高峰旅游时期是其最为繁忙的阶段,这时要处理的报修事项比较多,因此应对措施变得尤为重要。填补酒店房间、应对设备故障等情况,造成了来宾数量和压力的急增,因此需要考虑并采用更加有效的安全保障和服务措施,以确…

传输层协议——TCP(上)

文章目录 1. TCP协议1.1 TCP协议段格式1.2 确认应答(ACK)机制1.3 16位窗口大小1.4 6位标志位1.4.1 TCP三次握手 1.5 确认应答(ACK)机制1.6 超时重传机制1.7 连接管理机制1.7.1 理解TIME_WAIT状态1.7.2 理解 CLOSE_WAIT 状态 1. TCP协议 TCP全称为传输控制协议,意思…

Unity 找不到 Navigation 组件的解决

当我们想利用unity 里面的Navigation 组件来实现我们的物体的自动导航时,有时竟然会发现我们的菜单栏里面找不到 该组件 这时我们应该怎么办? 请确保你的项目中已经导入了Unity的AI模块。要导入该模块,请打开"Project Settings"&am…

论文学习——PixelSNAIL:An Improved Autoregressive Geenrative Model

文章目录 引言论文翻译Abstract问题 Introduction第一部分问题 第二部分问题 Model Architecture网络结构第一部分问题第二部分问题 Experiments实验问题 Conclusion结论问题 总结参考 引言 这篇文章,是《PixelSNAIL:An Improved Autoregressive Geenrative Model》…

在自定义数据集上使用 Detectron2 和 PyTorch 进行人脸检测

本文讲讲述如何使用Python在自定义人脸检测数据集上微调预训练的目标检测模型。学习如何为Detectron2和PyTorch准备自定义人脸检测数据集,微调预训练模型以在图像中找到人脸边界。 人脸检测是在图像中找到(边界的)人脸的任务。这在以下情况下…

STM32F40X系列FSMC8路驱动LCD显示屏(LY-TFT30-39P-1509 芯片hx8352)

hx8352_8080_8bit_FMSC板级驱动 1.LCD相关1.1LCD参数1.2 LCD引脚1.3 LCD实物1.4 LCD引脚解释 2.接线关系3.STM32F40x基于FMSC16bit修改1)地址偏移2)删除多余GPIO3)修改FMSC的配置4)LCD初始化寄存器 3.板驱动程序4.运行结果 1.LCD相关 1.1LCD参数 LCD控制芯片&…

C数据结构与算法——无向图(最小生成树) 应用

实验任务 (1) 掌握Kruskal最小生成树算法; (2) 掌握Prim最小生成树算法。 实验内容 (1) 随机生成一个无向网 G ( V, E ),V { A, B, C, D, E, F },| E | 11,边的权值取值范围为 [ 1, 40 ]; (2) 使用Prim算法求出图…

离散化思想——只处理有效数据的优化思想

离散化思想——只处理有效数据的优化思想 什么是离散化离散化题目——校门外的树(超强版,1e9)题目描述输入格式输出格式样例样例输入样例输出 提示 思路分析朴素做法离散化!!代码分析数组循环 什么是离散化 离散化思想…

C语言之浮点数_数据存储篇(2)

目录 浮点数 什么是浮点数呢? 为什么叫浮点数? 浮点数家族 浮点数表示的范围? 浮点数存储的例子 浮点数的存储方式 写成规定形式是怎样的? 那SME在内存中如何分配的呢? 为什么要这样存储? 浮点…

44、TCP报文(二)

接上节内容,本节我们继续TCP报文首部字段含义的学习。上节为止我们学习到“数据偏移”和“保留”字段。接下来我们学习后面的一些字段(暂不包含“检验和”的计算方法和选项字段)。 TCP首部结构(续) “数据偏移”和“保…

人工智能在车牌识别中的应用与影响

引言:车牌识别技术是基于人工智能的一种重要应用,通过对监控视频中的车辆图像进行处理和分析,可以快速、准确地识别车牌号码。这项技术的广泛应用可以帮助交通管理、停车场管理,甚至追踪犯罪嫌疑人的车辆。本文将详细探讨车牌识别…

从LeakCanary看ViewModel生命周期监控

前面两篇文章中已经了解了LeakCanary中Service和Fragment生命周期监控的实现,那么ViewModel生命周期监控又是怎么实现的呢? 同样的,要了解ViewModel生命周期监控,我们首先应该清楚在代码结构中ViewModel是如何存储获取的&#xf…

【零基础自用】理解python为什么要用虚拟环境

不知道学过MATLAB或者R的小伙伴刚刚接触python的时候会不会被各种python版本,包版本,虚拟环境之类的搞的头晕眼花。 问题一 包版本 先来假设,我们自己开发了一个包MyPackage 1.0,里面包含一个模块叫PreTrained,然后去…