当前位置: 首页 > news >正文

山西城乡建设网站/网上营销

山西城乡建设网站,网上营销,丹东网站设计,群晖wordpress只能访问首页python每日学习11:numpy库的用法(下) 数组的拼接 名方法称说明concatenate连接沿现有轴的数组序列hstack水平堆叠序列中的数组(列方向)vstack竖直堆叠序列中的数组(行方向)concatenate函数用于沿指定轴连接相同形状的两…

python每日学习11:numpy库的用法(下)

  • 数组的拼接

    名方法称说明
    concatenate连接沿现有轴的数组序列
    hstack水平堆叠序列中的数组(列方向)
    vstack竖直堆叠序列中的数组(行方向)
    concatenate函数用于沿指定轴连接相同形状的两个或多个数组,格式:numpy.concatenate((a1, a2, …), axis)
    # 列表的拼接
    a=[1,2,3]
    b=[4,5,6]
    a.extend(b)
    # 一维数组的拼接
    x=np.arange(1,4)
    y=np.arange(4,7)
    print(np.concatenate([x,y]))
    # 二维数组的拼接
    a=np.array([[1,2,3],[4,5,6]])
    b=np.array([['a','b','c'],['d','e','f']])
    print(np.concatenate([a,b]))
    print(np.concatenate([a,b],axis=0))
    print(np.concatenate([a,b],axis=1))# hstack()、vstack()和dstack()的使用
    # numpy.hstack它通过水平堆叠来生成数组。
    # numpy.vstack 它通过垂直堆叠来生成数组
    # vstack 与hstack的使用
    a=np.arange(1,4)
    b=np.arange(4,7)
    print(np.vstack([a,b]))
    print(np.hstack([a,b]))
    # 三维数组的拼接
    # axis=0可以使用vstack替换
    # axis=1可以使用hstack替换
    # axis=2可以使用dstack替换
    aa=np.arange(1,37).reshape(3,4,3)
    bb=np.arange(101,137).reshape(3,4,3)
    print(np.concatenate((aa,bb),axis=0))#6 4 3
    print(np.concatenate((aa,bb),axis=1)) #3  8  3
    print(np.concatenate((aa,bb),axis=2))#3 4 6
    
  • 数组的转置

    # 数组的转置:将行与列对调,即第一行变成第一列…或第一列变成第一行…的操作即使转置操作。
    # transpose进行转换
    a=np.arange(1,13).reshape(2,6)
    print(a)
    print(a.transpose())
    print(a.T)
    
  • 数组的分隔

    # numpy.split 函数沿特定的轴将数组分割为子数组,格式如下:numpy.split(ary, indices_or_sections, axis)
    # split分隔
    x=np.arange(1,9)
    a=np.split(x,4)
    print(a)
    print(a[0])
    print(a[1])
    print(a[2])
    print(a[3])
    #传递数组进行分隔
    b=np.split(x,[3,5])#左开右闭
    print(b)
    # 水平分隔:使用hsplit函数可以水平分隔数组,该函数有两个参数,第1个参数表示待分隔的数组,第2个参数表示要将数组水平分隔成几个小数组
    # hsplit的使用
    grid=np.arange(16).reshape(4,4)
    a,b=np.hsplit(grid,2)
    print(a)
    print(b)
    # 垂直分隔:使用vsplit函数可以垂直分隔数组,该函数有两个参数,第1个参数表示待分隔的数组,第2个参数表示将数组垂直分隔成几个小数组。
    # vsplit的使用
    grid=np.arange(16).reshape(4,4)
    a,b=np.vsplit(grid,2)#行分成 0+1  2+3
    a,b,c=np.vsplit(grid,[1,3])#行分成 0 1+2 3
    
  • 数学函数

    方法说明
    np.abs()、np.fabs()计算整数、浮点数的绝对值
    np.sqrt()计算各元素的平方根
    np.reciprocal()计算各元素的倒数
    np.square()计算各元素的平方
    np.exp()计算各元素的指数ex
    np.log() np.log10() np.log2()计算各元素的自然对数、底数为10的对数、底数为2的对数
    np.sign()计算各元素的符号,1(整数)、0(零)、-1(负数)
    np.ceil() np.floor() np.rint()对各元素分别向上取整、向下取整、四舍五入
    np.modf()将各元素的小数部分和整数部分以两个独立的数组返回
    np.cos() 、np.sin()、np.tan(对各元素求对应的三角函数
    np.add()、np.subtract()、np.multiply()、np.divide()对两个数组的各元素执行加法、减法、乘法、除法求每个元素的倒数
    a=[3,4,5,6,7,8]
    b=np.array(a)
    print(1/b)
    # reciprocal()函数的使用
    a=np.arange(1,10,dtype=np.float32).reshape(3,3)
    print(np.reciprocal(a))
    # square()函数的使用
    # 一维数组
    a=np.arange(1,10)
    print(np.square(a))
    #二维数组
    aa=np.arange(1,13).reshape(3,4)
    print(np.square(aa))
    # sign()函数的使用
    a=np.arange(-5,5)
    print(np.sign(a))#计算各元素的符号,1(整数)、0(零)、-1(负数)
    # modf()函数的使用
    b=np.arange(-5,5,0.4)
    print(np.modf(b))
    # 三角函数的使用:NumPy 提供了标准的三角函数:sin()、cos()、tan()。
    x=np.linspace(1,10,5)
    y=np.sin(x)
    print(y)
    # numpy.around(a,decimals) 函数返回指定数字的四舍五入值
    # decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置
    # numpy.floor() 返回数字的下舍整数。
    # numpy.ceil() 返回数字的上入整数。
    a=np.array([1.0,4.55,123,0.657,25.323])
    print(np.around(a))
    print(np.around(a, decimals=1))
    print(np.around(a, decimals=-1))
    print(np.rint(a))
    print(np.floor(a))
    print(np.ceil(a))
    
  • 算术函数

    # 算术函数:如果参与运算的两个对象 都是ndarray,并且形状相同,那么会对位彼此之间进行(+ - * /)运算。NumPy 算术函数包含简单的加减乘除: add(),subtract(),multiply() 和 divide()。
    # 算术函数的使用
    a=np.arange(9,dtype=np.float32).reshape(3,3)
    b=np.array([10,10,10])
    print(np.add(a,b))
    print(np.subtract(a,b))
    print(np.multiply(a, b))
    print(np.divide(a, b))
    # 算术函数中out参数的使用
    x=np.arange(5)
    y=np.empty_like(x)
    np.multiply(x,10,out=y)
    print(y)
    # mod()函数的使用
    # numpy.mod() 计算输入数组中相应元素的相除后的余数。函数
    # numpy.remainder() 也产生相同的结果。
    a=np.array([10,10,30])
    b=np.array([3,5,7])
    print(np.mod(a, b))
    print(np.remainder(a, b))
    
  • 统计函数

    方法说明
    np.sum()求和
    np.prod()所有元素相乘
    np.mean()平均值
    np.std()标准差
    np.var()方差
    np.median(中数
    np.power()幂运算
    np.sqrt()开方
    np.min()最小值
    np.max()最大值
    np.argmin()最小值的下标
    np.argmax()最大值的下标
    np.cumsum()对数组中元素累积求和,可指定轴
    np.cumprod()对数组中元素累积求积,可指定轴
    np.ptp()计算一组数中最大值与最小值的差,可指定轴
    np.unique()删除数组中的重复数据,并对数据进行排序
    np.nonzero()返回数组中非零元素的索引
    power()函数的使用
    x=np.arange(1,5)
    y=np.empty_like(x)
    np.power(x,2,out=y)
    print(y)
    # median ()函数的使用
    a=np.array([4,2,1,5])
    print(np.median(a))#计算偶数个的中位数
    a=np.array([4,2,5])
    print(np.median(a))#奇数个的中位数
    a=np.arange(1,16).reshape(3,5)
    print(np.median(a))
    print(np.median(a,axis=0))#中间行
    print(np.median(a,axis=1))#中间列
    #mean函数的使用
    a=np.arange(1,11).reshape(2,5)
    print(np.mean(a))
    print(np.mean(a,axis=0))
    print(np.mean(a,axis=1))
    # 函数的使用
    a = np.random.randint(10,50,size=20)
    np.max(a)
    np.sum(a)
    np.min(a)
    np.max(a)
    np.ptp(a)
    np.unique(a)
    np.nonzero(a)
    
  • 其他常用函数

    方法说明
    np.tile()将数组的数据按照行列复制扩展
    np.repeat()将数组中的每个元素重复若干次
    roll()沿指定轴对数组元素进行移位
    resize()重新调整数组的大小
    place()/put()将数组中满足条件的元素/指定的元素替换为指定的值
    np.savetxt()将数据保存到txt文件中
    np.loadtxt()从文件中加载数据
    np.genfromtxt()根据文件内容中生成数据,可以指定缺失值的处理等
    np.any()如果数组中存在一个为True的元素(或者能转为True的元素),则返回
    np.all()True如果数组中所有元素都为True(或者能转为True的元素),则返回True
    np.where(条件,x,y)如果条件为True,对应值为x,否则对应值为y
    np.dot()将矩阵相乘
    np.sort()对数组进行排序,返回一个新的排好序的数组,原数组不变
    np.sort()返回的是数组值从小到大排序后元素对应的索引值
    # tile()和repeat()函数的使用
    a=np.arange(4)
    np.tile(a,2)##复制2次
    np.tile(a,(3,2))#行列复制
    print(np.repeat(a, 2))
    a=np.arange(1,13).reshape(3,4)
    np.repeat(a,2)
    print(np.repeat(a, 2, axis=0))
    print(np.repeat(a, 2, axis=1))
    # roll()函数的使用
    b=np.arange(12)
    print(np.roll(b, 3))#一维数组,向后调3个
    print(np.roll(b, -1))#向前调2个
    aa=np.arange(1,13).reshape(3,4)
    print(np.roll(aa, 2))
    print(np.roll(aa, 2, axis=0))
    # resize()函数的使用
    aa.reshape(4,3)#修改维度,元素个数必须相同
    np.resize(aa,(5,6)) #resize重新调整数组的大小,元素个数可以不相同
    # replace()和put()函数的使用
    aa=np.random.randint(40,100,(3,4))
    np.place(aa,aa<60,0)##小于60分的 全部替换为0
    aa=np.arange(1,13).reshape((3,4))
    np.put(aa,2,100)#put()指定的索引处的元素替换为指定的值
    # savetxt()和loadtxt()函数的使用
    a=np.random.randint(-50,100,1000)
    #保存
    np.savetxt('savetxt.txt',a,fmt='%d')
    #加载
    b=np.loadtxt('savetxt.txt',dtype=int)
    # any()、all()函数的使用
    x=np.array([False,True,False,1,0,True])
    np.any(x)#any函数 只要有一个元素为True,则结果返回True
    np.all(x)#all函数 只有所有元素都为True,则结果返回True
    # where()函数的使用
    np.random.seed()
    a=np.random.randint(20,100,10)
    print(a)
    print(np.where(a>50,True,False))
    # dot函数的使用
    x=np.array([[1,2],[3,4]])
    y=np.array([[2,3],[1,2]])
    x.dot(y)#dot函数 矩阵相乘  矩阵相乘前提是,第一个矩阵的列数和第二个矩阵的行数要相同
    x.dot(3) #每个元素与3相乘
    
  • 数组排序

    # 数组排序:排序中主要用到的方法是np.sort和np.argsort。其中np.sort()是对数组直接排序。而np.argsort()是返回排序后的原始索引。
    # 一维数组排序
    a=np.array([5,2,4,5,7,3,8])
    print(np.sort(a))
    print(np.argsort(a))#np.argsort()是返回排序后的原始索引。
    # 二维数组排序
    np.random.seed(44)
    a=np.random.randint(100,size=(4,6))
    print(np.sort(a))
    print(np.sort(a,axis=0))#上行比下行小
    print(np.sort(a,axis=1))#左列比右列小
    # 按最后一列进行排序
    b=a[:-1]
    print(b)#可以先获取最后一列的数组
    index=np.argsort(b)#获取最后一列数组排序后的原始索引
    
  • numpy广播机制

    # 广播的规则
    # 1,如果两个数组维度个数不同,那么小维度的数组形状会在左边补1
    # 2,如果两个数组形状在任何一个维度上都不匹配,数组的形状会沿着维度为1的维度扩展到匹配上另一个数组的形状
    # 3,如果没有维度形状为1,则会引发异常两个数组相加
    #  0 1 2    0 0 0
    #  0 1 2    1 1 1
    #  0 1 2    2 2 2
    a=np.array([0,1,2])
    print(a+5)
    b=np.array([2,2,2])
    print(a+b)
    # 维度不相同的数组相加
    a=np.arange(3)
    b=np.arange(3).reshape(3,1)
    print(a+b)
    
  • 比较掩码

    # 比较掩码:比较操作,会返回与参与运算数组形状相同的数组,其中,满足条件的为True,不满足的为False
    # 数组的比较操作
    a=np.array([[1,2,39],[34,45,67]])#传入的数组,需要和a形状一致,且类型为Bool类型,这个叫做掩码式索引
    print(a<50)
    # 掩码式索引取值,过滤掉不符合条件的
    print(a[np.array([[True,True,True],[True,True,False]])])
    print(a[a<50])
    

相关文章:

python每日学习11:numpy库的用法(下)

python每日学习11&#xff1a;numpy库的用法(下) 数组的拼接 名方法称说明concatenate连接沿现有轴的数组序列hstack水平堆叠序列中的数组&#xff08;列方向&#xff09;vstack竖直堆叠序列中的数组&#xff08;行方向&#xff09;concatenate函数用于沿指定轴连接相同形状的两…...

【Emacs有什么优点,用Emacs写程序真的比IDE更方便吗?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…...

6、基于Fabirc 2.X 通用电子存证系统部署

evidence 将GOPATH设置为/root/go,拉取项目&#xff1a; cd $GOPATH/src && git clone https://gitee.com/henan-minghua_0/evidence.git 在/etc/hosts中添加&#xff1a; 127.0.0.1 orderer.example.com 127.0.0.1 peer0.org1.example.com 127.0.0.1 peer1.org…...

Linux Vim 由浅入深的教程

引言 原文链接 Vim是Linux系统中非常强大的文本编辑器&#xff0c;因其强大的功能和灵活的操作而受到广泛使用。尤其是在服务器管理和开发环境中&#xff0c;Vim几乎是必备工具。本教程将以CentOS 7为例&#xff0c;详细讲解Vim的安装、基本操作以及一些高级技巧&#xff0c;…...

MIT6.824(6.5840) Lab1笔记+源码

文章目录 其他人的内容&#xff0c;笔记写的更好&#xff0c;思路可以去看他们的MapReduceworkermapreduce coordinatorrpc纠错 源码worker.gocoordinator.gorpc.go 原本有可借鉴的部分 mrsequential.go&#xff0c;多看几遍源码 其他人的内容&#xff0c;笔记写的更好&#xf…...

【目录】8051汇编与C语言系列教程

8051汇编与C语言系列教程 作者将狼才鲸创建日期2024-07-23 CSDN文章地址&#xff1a;【目录】8051汇编与C语言系列教程本Gitee仓库原始地址&#xff1a;才鲸嵌入式/8051_c51_单片机从汇编到C_从Boot到应用实践教程 一、本教程目录 序号教程名称简述教程链接1点亮LCD灯通过IO…...

群管机器人官网源码

一款非常好看的群管机器人html官网源码 搭建教程&#xff1a; 域名解析绑定 源码文件上传解压 访问域名即可 演示图片&#xff1a; 群管机器人官网源码下载&#xff1a;客户端下载 - 红客网络编程与渗透技术 原文链接&#xff1a; 群管机器人官网源码...

整合EasyExcel实现灵活的导入导出java

引入pom依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId></dependency>实现功能 结合Vue前端&#xff0c;实现浏览器页面直接导出日志文件实现文件的灵活导入文件导出 3. 实体类 实体类里有自定义转…...

springSecurity学习之springSecurity web如何取得用户信息

web如何取得用户信息 之前说过SecurityContextHolder默认使用的是ThreadLocal来进行存储的&#xff0c;而且每次都会清除&#xff0c;但是web每次请求都会验证用户权限&#xff0c;这是如何做到的呢&#xff1f; 这是通过SecurityContextPersistenceFilter来实现的&#xff0…...

eclipse中的classbean导入外部class文件,clean项目后删除问题

最近被eclipse搞得头疼&#xff0c;下午终于解决 eclipse创建的java项目中&#xff0c;类的输出目录是classbean。由于项目需要&#xff0c;classbean目录下已经导入了外部的类&#xff0c;但每次clean项目时&#xff0c;会把class删掉。 广泛查询&#xff0c;eclipse不清空c…...

OBD诊断(ISO15031) 0A服务

文章目录 功能简介ISO 15765-4的诊断服务定义1、请求具有永久状态的排放相关故障诊断码2、请求具有永久状态的排放相关故障诊断码3、示例报文 功能简介 0A服务&#xff0c;即 Request emission-related diagnostic trouble code with permanent status&#xff08;请求排放相关…...

ForCloud全栈安全体验,一站式云安全托管试用 开启全能高效攻防

对于正处于业务快速发展阶段的企业&#xff0c;特别是大型央国企而言&#xff0c;日常的安全部署和运营管理往往横跨多家子公司&#xff0c;所面临的挑战不言而喻。尤其是在面对当前常态化的大型攻防演练任务时&#xff0c;难度更是呈“几何级数”上升&#xff1a; 合规难 众…...

Java——————接口(interface) <详解>

1.1 接口的概念 在现实生活中&#xff0c;接口的例子比比皆是&#xff0c;比如&#xff1a;笔记本电脑上的USB接口&#xff0c;电源插座等。 电脑的USB口上&#xff0c;可以插&#xff1a;U盘、鼠标、键盘...所有符合USB协议的设备 电源插座插孔上&#xff0c;可以插&#xff…...

【C++】【继承】【子对象】【构造函数】含子对象的派生类的构造函数写法

&#xff08;1&#xff09;子对象的概念&#xff1a;若派生类A1的数据成员中包含基类A的对象a&#xff0c;则a为派生类A1的子对象 &#xff08;2&#xff09;含子对象的派生类的构造函数的执行顺序是&#xff1a; ①调用基类构造函数&#xff0c;对基类数据成员初始化 ②调用子…...

golang语言 .go文件版本条件编译,xxx.go文件指定go的编译版本必须大于等于xxx才生效的方法, 同一个项目多个go版本文件共存方法

在go语言中&#xff0c;我们不关是可以在编译时指定版本&#xff0c; 在我们的xxx.go文件中也可以指定go的运行版本&#xff0c;即 忽略go.mod中的版本&#xff0c;而是当当前的go运行版本达到指定条件后才生效的xxx.go文件。 方法如下&#xff1a; 我们通过在xxx.go文件的头部…...

深入浅出mediasoup—通信框架

libuv 是一个跨平台的异步事件驱动库&#xff0c;用于构建高性能和可扩展的网络应用程序。mediasoup 基于 libuv 构建了包括管道、信号和 socket 在内的一整套通信框架&#xff0c;具有单线程、事件驱动和异步的典型特征&#xff0c;是构建高性能 WebRTC 流媒体服务器的重要基础…...

每日一题 LeetCode03 无重复字符的最长字串

1.题目描述 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的最长字串的长度。 2 思路 可以用两个指针, 滑动窗口的思想来做这道题,即定义两个指针.一个left和一个right 并且用一个set容器,一个length , 一个maxlength来记录, 让right往右走,并且用一个set容器来…...

栈和队列(C语言)

栈的定义 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#xff1a;…...

swagger-ui.html报错404

问题1&#xff1a;权限受限无法访问 由于采用的Shiro安全框架&#xff0c;需要在配置类ShiroConfig下的Shiro 的过滤器链放行该页面&#xff1a;【添加&#xff1a;filterChainDefinitionMap.put("/swagger-ui.html", "anon");】 public ShiroFilterFact…...

Milvus 核心组件(3)--- MinIO详解

目录 背景 MinIO 安装 docker desktop 安装 Ubuntu UI 在 docker 中的安装 Minio 下载及安装 启动minio docker image 保存 启动 minio web 网页 下一次启动 MinIO基本概念 基本概述 主要特性 应用场景 MinIO 使用 连接server 创建bucket 查询bucket 上传文件…...

[数据集][目标检测]婴儿车检测数据集VOC+YOLO格式1073张5类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1073 标注数量(xml文件个数)&#xff1a;1073 标注数量(txt文件个数)&#xff1a;1073 标注…...

JAVASE进阶day14(网络编程续TCP,日志)

TCP 三次握手 四次挥手 package com.lu.day14.tcp;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket;public class Client {public static void main(String[] args) {try(Socket socket new Socket("192.…...

机器学习(五) -- 无监督学习(1) --聚类1

系列文章目录及链接 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 监督学习&#xff08;7&#xff09; --SVM2 下篇&#xff1a;机器学习&#xff08;五&#xff09; -- 无监督学习&#xff08;1&#xff09; --聚类2 前言 tips&#xff1a;标题前有“***”的内容…...

leetcode 116. 填充每个节点的下一个右侧节点指针

leetcode 116. 填充每个节点的下一个右侧节点指针 题目 给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next …...

[C++]优先级队列

1 .了解优先级队列 优先级队列是一种容器适配器&#xff0c;根据一些严格的弱排序标准&#xff0c;专门设计使其第一个元素始终是它所包含的元素中最大的元素。 此上下文类似于堆&#xff0c;其中可以随时插入元素&#xff0c;并且只能检索最大堆元素&#xff08;优先级队列中顶…...

学习大数据DAY22 Linux 基 本 指 令 3与 在 Linux 系 统 中 配 置MySQL 和 Oracle

目录 网络配置类 ps 显示系统执行的进程 kill systemctl 服务管理 配置静态 ip 常见错误---虚拟机重启网卡失败或者网卡丢失 mysql 操作 上机练习 6---安装 mysql---参考《mysql 安装》文档 解锁 scott 重启后的步骤 上机练习 7---安装 oracle---参考《oracle 安装》…...

scp 服务器复制命令

步骤如下&#xff1a; 终端执行如下命令 #ssh-keygen -t rsa 2. 密钥生成后会在 /root/.ssh/ 文件夹下产生两个文件 id_rsa id_rsa.pub 将 id_rsa.pub 文件复制到 152.136.121.24 执行如下命令 scp /root/.ssh/id_rsa.pub root152.136.121.24:/root/.ssh/authorized_keys…...

PyQt5学习路线

后续会根据该文章的路线逐步发布对应的教程&#xff0c;订阅专栏不迷路&#x1f970; 本专栏纯干货&#x1f929; 学习Python的PyQt5库&#xff0c;可以遵循以下的学习路线&#xff1a; 1. Python基础 掌握Python语法&#xff1a;确保你熟悉Python的基本语法&#xff0c;包括…...

2024论文精读:利用大语言模型(GPT)增强上下文学习去做关系抽取任务

文章目录 1. 前置知识2. 文章通过什么来引出他要解决的问题3. 作者通过什么提出RE任务存在上面所提出的那几个问题3.1 问题一&#xff1a;ICL检索到的**示范**中实体个关系的相关性很低。3.2 问题二&#xff1a;示范中缺乏解释输入-标签映射导致ICL效果不佳。 4. 作者为了解决上…...

WEB 手柄 http通信,mcu端解析代码 2024/7/23 日志

WEB 手柄 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>WEB遥控器</title> </head> &l…...