【ML】numpy meshgrid函数使用说明(全网最简单版)

news2024/11/19 0:28:08

【ML】numpy meshgrid函数使用说明

  • meshgrid的作用?
  • 怎么使用(举例说明)
  • 手工描点(帮助理解)
  • 怎么画三维?
  • 附画图代码

meshgrid的作用?

首先要明白numpy.meshgrid()函数是为了画网格,(对就是画格子,至于格子怎么用,那要看实际场景了,我们这里只关心怎么画格子)

怎么使用(举例说明)

为了方便大家理解,我以结果反推的方式进行讲解,这样更直观。先看下图:
假如我们要得到这样一个网格图(注意坐标):
在这里插入图片描述

手工描点(帮助理解)

  1. 先找到坐标x=1,然后分别画出(1,5),(1,6),(1,7)
  2. 再找到坐标x=2,然后分别画出(2,5),(2,6),(2,7)
  3. 以此类推即可

我们可以得到:x=[1,2,3,4],y=[5,6,7]
做个笛卡尔积即可得到所有点。所以我们可以有以下代码:

x_component = np.array([1,2,3,4])
y_component = np.array([5,6,7])
x,y = np.meshgrid(x_component,y_component)

输出结果:

x=[[1 2 3 4]
 [1 2 3 4]
 [1 2 3 4]]
y=[[5 5 5 5]
 [6 6 6 6]
 [7 7 7 7]]

输出结果有点不好理解。这是啥???,但是我们观察规律,如果我们把x,y两个矩阵当做两张图片叠加在一起是什么效果?
示意图:

[[1 5    2 5    3 5    4 5]
 [1 6    2 6    3 6    4 6]
 [1 7    2 7    3 7    4 7]]

然后上下翻转一下:

[[1 7    2 7    3 7    4 7]
 [1 6    2 6    3 6    4 6]
 [1 5    2 5    3 5    4 5]]

这不是跟图上的坐标一模一样嘛!!!

怎么画三维?

先看图(目标):
在这里插入图片描述

x_component = np.array([1,2,3,4])
y_component = np.array([5,6,7])
z_component = np.array([8,9])
x,y,z = np.meshgrid(x_component,y_component,z_component)

输出(怎么理解?叠加法!!!):

x= [[[1 1]
  [2 2]
  [3 3]
  [4 4]]

 [[1 1]
  [2 2]
  [3 3]
  [4 4]]

 [[1 1]
  [2 2]
  [3 3]
  [4 4]]]
y= [[[5 5]
  [5 5]
  [5 5]
  [5 5]]

 [[6 6]
  [6 6]
  [6 6]
  [6 6]]

 [[7 7]
  [7 7]
  [7 7]
  [7 7]]]
z= [[[8 9]
  [8 9]
  [8 9]
  [8 9]]

 [[8 9]
  [8 9]
  [8 9]
  [8 9]]

 [[8 9]
  [8 9]
  [8 9]
  [8 9]]]

附画图代码

二维图:

#二维图
import numpy as np
x_component = np.array([1,2,3,4])
y_component = np.array([5,6,7])
xv,yv = np.meshgrid(x_component,y_component)

import matplotlib.pyplot as plt
str_label = '({x_label}, {y_label})'
fig = plt.figure(figsize=(5,5))
plt.axis([0,5,4,8])

xy = np.c_[xv.ravel(),yv.ravel()]
for point in xy:
    x = point[0]
    y = point[1]
    color = 'r' if y==5 else ('b' if y==6 else 'g')
    plt.scatter(x, y, c=color)
    plt.annotate(str_label.format(x_label=x,y_label=y),xy = (x, y), xytext = (x+0.1, y+0.1))
                
plt.show()

三维图:

# 3维图
import numpy as np
x_component = np.array([1,2,3,4])
y_component = np.array([5,6,7])
z_component = np.array([8,9])
xv,yv,zv = np.meshgrid(x_component,y_component,z_component)

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(5,5))
ax = fig.add_subplot(projection='3d')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

xyz = np.c_[xv.ravel(),yv.ravel(),zv.ravel()]
for point in xyz:
    x = point[0]
    y = point[1]
    z = point[2]
    color = 'r' if z == 8 else 'b'
    ax.scatter(x, y, z, c=color)
plt.show()

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

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

相关文章

Systemverilog实现参数化的Round-Robin Arbiter Tree

本篇内容涉及的rtl代码为开源组织PLUP的common cell仓库中的源代码,本文只是对其进行些许解读。源码链接如下:[https://github.com/pulp-platform/common_cells/blob/dc555643226419b7a602f0aa39d449545ea4c1f2/src/rr_arb_tree.sv] “想要快速提升编程能…

基于springboot的公司人事管理系统

1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,公司人事管理系统。 计算机毕业生设计,课程设计需要帮助的可以找我 源码获取------》 链接:https://pan.baidu.com/s/1CdxrlV7GeRRmsT9UWEMtJg 提取码:cygy 2 设计概要 21世纪…

测试人不得不知的 HTTP 状态码知识

HTTP协议是当前使用最广泛的一种通信协议,在性能测试中,也使用的非常广泛。但是,确有很多人在调试性能测试脚本的时候,弄不明白HTTP状态码,不能通过HTTP状态码做些基本判断,今天,就来给大家好好…

客户终身价值(CLTV)计算和回归预测模型(Python)

内容介绍 本文整理了客户终身价值(CLV或者CLTV)的相关概念,并对一家英国线上零售公司的一年交易数据进行分析,计算该公司所有客户的CLV并且建立回归预测模型。 一、客户生命周期价值 用户生命周期价值Customer Lifetime value(…

常见实用的锁策略详解

🎈专栏链接:多线程相关知识详解 目录 1.乐观锁VS悲观锁 2.读写锁VS普通互斥锁 3.轻量级锁VS重量级锁 4.自旋锁VS挂起等待锁 5. 公平锁VS非公平锁 6.可重入锁VS不可重入锁 7.关于synchronized的锁策略以及自适应 1.乐观锁VS悲观锁 乐观锁:预测锁…

Windows中安装配置RabbitMQ

本次安装环境win10,采用版本 OTP 25.0.3https://github.com/erlang/otp/releases/tag/OTP-25.0.3RabbitMQ 3.10.13 Release RabbitMQ 3.10.13 rabbitmq/rabbitmq-server GitHubOpen source RabbitMQ: core server and tier 1 (built-in) plugins - Release Rabbi…

[N1CTF 2018]eating_cms parse_url绕过

index.php <?php require_once "function.php"; if(isset($_SESSION[login] )){Header("Location: user.php?pageinfo"); } else{include "templates/index.html"; } ?> function.php <?php session_start(); require_once &q…

Kafka Producer 自定义 拦截器 序列化

Kafka Producer 拦截器 & 序列化 前言 文章中的版本信息、maven依赖如下 JDK17 kafka_2.13-3.3.1 pom文件 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>…

NR HARQ (四)Type-2 HARQ-ACK codebook

微信同步更新欢迎关注同名modem协议笔记 上篇提到type-1 HARQ-ACK codebook&#xff0c;即semi-static codebook&#xff0c;UE要为每个PDSCH候选位置生成反馈&#xff0c;也会包含实际没有下行传输的PDSCH&#xff0c;再加上配置CBG的场景&#xff0c;HARQ-ACK 码本中包含的无…

【Linux 内核 内存管理】物理内存组织结构

一、 UMA和NUMA两种模型 共享存储型多处理机有两种模型 一致内存访问&#xff08;Uniform-Memory-Access&#xff0c;简称UMA&#xff09;模型 非一致内存访问&#xff08;Nonuniform-Memory-Access&#xff0c;简称NUMA&#xff09;模型 UMA模型 物理存储器被所有处理器件均…

超标量处理器设计——第八章_发射

超标量处理器设计——第八章_发射 参考《超标量处理器》姚永斌著 文章目录超标量处理器设计——第八章_发射8.1 简述8.1.1 集中式 VS. 分布式8.1.2 数据捕捉 VS. 非数据捕捉8.1.3 压缩 VS. 非压缩8.2 发射过程的流水线8.2.1 非数据捕捉结构的流水线8.2.2 数据捕捉结构的流水线8…

随手写系列——写一个凯撒密码转换页面

文章目录先展示效果H5编写C3编写JS编写——方法一&#xff1a;过程版JS编写——方法二&#xff1a;对象版代码获取先展示效果 &#xff08;因为主要是实现功能&#xff0c;所以CSS写的很粗糙&#xff09; H5编写 基础结构如下&#xff1a; 先构成最外面的大盒子.box&#…

【Flutter】之便于提高开发效率的周边库和轮子

GetX 状态管理 GetX包含很多功能&#xff0c;各种弹出widget、路由管理、国际化、Utils、状态管理等。 基于路由管理 1. 添加到项目中 1.1. 将此添加到pubspec.yaml文件中。 get: 4.1.4 1.2. 在命令行中运行 flutter packages get 1.3. 在MaterialApp前面加上 “Get”&…

centos7 yum安装postgreSQL

安装环境centos7.6 安装步骤&#xff1a; 1、安装postgresql&#xff1a; yum install postgresql-server 2、安装postgresql 扩展包&#xff1a; yum install postgresql-contrib 3、初始化&#xff1a; postgresql-setup initdb 4、启动开机自启动&#xff1a; systemc…

说话人识别神经网络推理方式

概述 说话人识别是一个序列总结&#xff08;Sequence Summarization&#xff09;任务&#xff0c;输入是音频&#xff08;或者说&#xff0c;声学特征的序列&#xff09;&#xff0c;输出是说话人的嵌入码&#xff0c;有的神经网络可以输入一对音频&#xff0c;直接输出这对音…

java微信支付v3系列——9.微信支付之商家转账API

这个功能就比较复杂了&#xff0c;首先是得有90天的资金流水才能开通&#xff0c;其次开通后还需要在官网进行配置&#xff0c;不能直接调用&#xff0c;并且限制了IP地址。 如下图所示&#xff0c;首先需要进行产品设置&#xff0c;将里面都设置好后才能进行开发&#xff0c;…

feign 调用常见问题避坑指南!

摘要&#xff1a;主要是总结了一下这段时间在使用 feign 的过程中的遇到的一些坑点。一、Get请求自动转化成POST的问题1、client 请求参数没有加上 RequestParam 注解问题代码&#xff1a;GetMapping("/showName") String showName(String name);错误提示&#xff1a…

让 APISpace 告诉你什么场景使用什么API

Q1&#xff1a;某商家打算搞年底促销活动&#xff0c;需要将活动信息通过短信的形式通知给用户&#xff0c;这个场景可以用什么接口&#xff1f; 发送通知类的短信&#xff0c;可以使用 通知短信 API~ 通知短信&#xff0c;支持三大运营商&#xff0c;虚拟运营商短信发送&…

第14章 并发控制与恢复

第14章 并发控制与恢复 考试范围&#xff1a; 14.1-14.3, 14.8-14.11 考试题型&#xff1a; 事务操作 考试内容&#xff1a; 1、锁/共享锁/排它锁的概念 2、多粒度锁 Multiple Granularity 3、两阶段封锁协议 The Two-Phase Locking Protocol 两段锁协议是指同一事务对任何…

2.前端笔记-JS-JS3种书写位置、注释、输入输出

书写位置 行内式嵌入式外部文件引入 1、行内式JS 可以将单行或少量的JS代码写在HTML标签的事件属性中&#xff08;以on开头的属性&#xff09;&#xff0c;如onclick单双引号使用&#xff1a;HTML中推荐双引号&#xff0c;JS中推荐单引号&#xff0c;如 <input type&quo…