【腾学汇的第1个实验代码】应用Matplotlib绘制图标分析

在这里插入图片描述


应用Matplotlib绘制图标分析

# 1.创建一维数组
# 导入包
import numpy as np#两种方式创建一维数组
vector = np.array([1,2,3])  #把数列转换成 nampy格式的数组
print(vector)print(type([1, 2, 3]), type(vector))
vector = np.arange(15)  #使用numpy.arange()方法创建给定区间,固定步长的数组或矩阵
print(vector)"""range([start, ]stop [,step])"""

在这里插入图片描述

# 2.创建多为数组
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matrix)

在这里插入图片描述

# 创建指定维度且元素全部为1的数组
one_matrix = np.ones([2,3])  #创建2*3的全1数组
print("全1数组:\n",one_matrix)
# 创建指定维度且元素全为0的数组
zero_matrix = np.zeros([2,3]) #创建2*3的全0数组
print('全0数组\n',zero_matrix)
# 创建指定维度且元素全为随机数的数组
rand_matrix = np.empty([2,3]) #创建2*3的全随机数组
print('全随机数组:\n', rand_matrix) #此处生成的值不一定是0,因为刚好分配给当前函数生成值的内存上刚好是0

#此处生成的值不一定是0,因为刚好分配给当前函数生成值的内存上刚好是0

在这里插入图片描述

# 3.操作数组元素
a = np.ones([2,3])
print(a)
a[1,1] = 100  #将数组a的[1,1]的值修改为100
print(a)a[0,2] = -10
print(a)

在这里插入图片描述

a = np.ones([2,3])
# ndim: 统计数组维数,即维度的数量
print('维度', a.ndim)
# shape:统计数组维度值,即数组行和列
print('形状',a.shape)
# size:统计数组元素的综述
print('元素个数',a.size)
# dtype:数组元素类型
print('元素类型',a.dtype)
# itemsize:数组中每个元素的字节大小
print('每个元素的字节大小',a.itemsize)

在这里插入图片描述

# 1.数组的算数运算
# 数组加、减、乘、除
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])print("a+b", a+b);
print("a-b", a-b);
print("a*b", a*b);
print("a/b", a/b);

在这里插入图片描述

import time
num_count = 10000
a = [i for i in range(num_count)]
b = [i for i in range(num_count)]list_res = []t1 = time.time()
for i in range(num_count):list_res.append(a[i] + b[i])
t2 = time.time()
list_cost = t2-t1
# print(list_res)np_a, np_b = np.array(a), np.array(b)
t3 = time.time()
np_res = np_a + np_b
t4 = time.time()
np_cost = t4-t3print('列表迭代计算耗时 = %.8f' % list_cost) #把变量填到%.8f这个地方,保留8位小数
print('numpy计算耗时 = %.8f' % np_cost)print(np.array_equal(np_res,np.array(list_res)),f"{np_cost/list_cost: .8f}")
# print(np_res) 
# 结果发现 用np做计算的耗时比直接用列表计算的耗时 减少一半,因其强大的性能,所以常被用来做数学运算

结果发现 用np做计算的耗时比直接用列表计算的耗时 减少一半,因其强大的性能,所以常被用来做数学运算

在这里插入图片描述

# 2.数组实现矩阵运算
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])print("a*b=",a*b)
#numpy.dot(矩阵乘)有2种写法:①x.dot(y)②np.dot(x,y)
print("Matrix1:",a.dot(b))
print("Matrix2:",np.dot(a,b))

在这里插入图片描述

#3.数组与标量算术运算
a = np.array([1,2,3])
print("a+2=",a+2)
print("a-2=",a-2)
print("a*2=",a*2)
print("a/2=",a/2)

在这里插入图片描述

#4.一维数组的min,maX,Sum运算
a = np.array([1,2,3])
print("min of array:",a.min())
print("max of array:",a.max())
print("sum of array:",a.sum())#一维数组的exp,sgrt,square运算
print("exp of array:",np.exp(a))
print("sqrt of array:",np.sqrt(a))
print("square of array:",np.square(a))e = 2.71828183  
e ** 2

在这里插入图片描述

#5.多维数组的min,max,sum运算
a = np.array([[1,2,3],[4,5,6]])
print("min of array:",a.min())
#ax15=0,表示沿着纵轴进行计算
print("min of array:",a.min(axis=0))
#axi5=1,表示沿着纵轴进行计算
#【数组1,数组2]
#数组1=[1,2,3]
#数组2=[4,5,6]
print("min of array:",a.min(axis=1))
print("max of array:",a.max())
print("max of array:",a.max(axis=0))
print("max of array:",a.max(axis=1))
print("sum of array:",a.sum())
print("sum of array:",a.sum(axis=0))
print("sum of array:",a.sum(axis=1))```

在这里插入图片描述

#6.随机数组生成
np.random.seed(42)  
print(np.random.rand(2,3)) # 均匀随机分布,[0,1]
print(np.random.randn(2,3)) # 正态分布
print(np.random.randint(1,10))# [start, end]
print(np.random.binomial(6,1))# 二项分布
print(np.random.beta(2,3)) # beta分布
print(np.random.normal(2,3)) #高斯正态分布

在这里插入图片描述

#7.一维数组索引、切片、送代 
a=np.arange(10)
print(a)#打印整个数组 
print(a[:5])#打印数组前5个元素 
for i in a: print(a[i])

在这里插入图片描述

#8.多维数组索引、切片、迭代
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
#打印整个数组
print(a[0:2,1:3])#打印数组不同维度指定元素
# a[0:2,] = [[1,2,3],[4,5,6]]
# a[0:2, 1:3] = [[2,3],[5,6]]
for i in a:print(i)

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt 
a=np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
plt.hist(a,bins=[0,20,40,60,80,100])np.sort(a)

在这里插入图片描述
在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
a=np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
hist,bins=np.histogram(a,bins=[0,10,20,30,40,50,60,70,80,90,100])
print(hist)
print(bins)

在这里插入图片描述

x = [(bins[i]+bins[i+1])/2 for i in range(len(bins)-1)]#每个柱子的中心坐标
print("x:",x)
y = hist  #每个柱子的高度
plt.bar(x,y,width=bins[1]-bins[0])#width表示每个柱子的宽度
plt.show()

在这里插入图片描述

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

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

相关文章

吉他效果器开发方法

吉他效果器开发方法 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,群赠送语音信号处理降噪算法,蓝牙耳机音频,ADI DSP音频项目核心开发资料, 1 做出的效果图 2 介绍 …

类和对象!

类和对象! 1:局部变量2:3:构造方法的调用4:5:6:7:8:一级目录 1:局部变量 下面代码的运行结果是() public static void main(String[…

【网络通信】探索UDP与TCP协议、IP地址和端口号的奥妙

🌺个人主页:Dawn黎明开始 🎀系列专栏:网络奇幻之旅 ⭐每日一句:往前走,朝着光 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️ 文章目录 📋前…

【项目管理】甘特图(2)——甘特图教程

哈喽啊,你好,我是雷工。 通过上节初步认识了甘特图,本节学习如何一步步创建甘特图,以下为学习笔记。 一、样例展示 下边记录创建甘特图的操作步骤,完成的实际效果如下图所示: 实例图的上端展示项目的重要…

Altium Designer学习笔记7

PCB封装库的制作: 距离的测量: 各个焊盘的位置: 直插元件选择Multi-Layer。如果贴片元件的则选择顶层Top-Layer,或者Bottom-Layer。 形状是方形,尺寸是2mm*2mm。 孔的尺寸是1.4mm。 则该器件就制作完成。 TSSOP28封装…

VirtualBox7安装Ubuntu20及全屏、共享、粘贴板等设置

VirtualBox7安装Ubuntu20及全屏、共享、粘贴板等设置 1. 安装VirtualBox2. 安装Ubuntu202.1 获得x.vdi2.2 新建虚拟电脑 3. 增强设置3.1 增强功能3.2 全屏3.2 共享文件夹3.4 粘贴板 1. 安装VirtualBox 官网https://www.virtualbox.org/wiki/Downloads下载,笔者选择…

ECharts与Excel的结合实战

引言:本文是一篇ECharts和Excel实战的记录。将Excel与ECharts产生火花,从Excel读取数据然后在ECharts上展示。 1.柱状图前端代码 2.饼图前端代码 3.后端通用代码 3.1生成Excel表格 3.2Excel表格数据导入ECharts

MyCAT2分库分表

目录 ​​​​​​一、分库分表的原理 1.垂直切分 2.水平切分 3.如何分表 1.选择要拆分的表 2.选择分表的定段 3.分库分表的环境准备 1.进入dw0配置 1)进入目录: 2)修改dw0.cnf: 3)修改dr0.cnf:…

# 聚类系列(一)——什么是聚类?

目前在做聚类方面的科研工作, 看了很多相关的论文, 也做了一些工作, 于是想出个聚类系列记录一下, 主要包括聚类的概念和相关定义、现有常用聚类算法、聚类相似性度量指标、聚类评价指标、 聚类的应用场景以及共享一些聚类的开源代码 下面正式进入该系列的第一个部分&#xff…

jquery常用方法介绍

jQuery 是一个流行的 JavaScript 库,提供了丰富的 API,可以简化 DOM 操作、事件处理、动画效果等操作。下面是 jQuery 中常用的方法介绍: 选择器方法:可以使用 CSS 选择器或 jQuery 特有的选择器来选取页面中的元素,例…

MFC中的主窗口以及如何通过代码找到主窗口

MFC程序中的主窗口 在MFC程序中,可以设置主窗口,主窗口在应用程序类中设置,即设置应用程序类(通常以App结尾,通常包括InitInstance方法的类)的m_pMainWnd属性,将其设置为主窗口的指针。 一般在…

echarts 多toolti同时触发图表实现

需求背景解决效果ISQQW代码地址energyChart.vue 需求背景 需要实现同x轴,4个图表的的多图表联动效果,且滑动会触发各个图表的tooltip,即一个图表拥有4个tooltip(目前echarts不支持,我这里绕过了这个问题) 解决效果 ISQQW代码地…

做好性能测试计划的4个步骤!全都是精华!【建议收藏】

如何做好一次性能测试计划呢?对于性能测试新手来说,也许你非常熟悉Jmeter的使用,也许你清楚的了解每一个系统参数代表的意义,但是想要完成好一次性能测试任务,并不仅仅是简单的写脚本,加压力,再…

【Seata源码学习 】篇三 TM开启全局事务的过程

【Seata源码学习 】篇三 TM开启全局事务的过程 TM发送 单个或批量 消息 以发送GlobalBeginRequest消息为例 TM在执行拦截器链路前将向TC发送GlobalBeginRequest 消息 io.seata.tm.api.DefaultGlobalTransaction#begin(int, java.lang.String) Overridepublic String begin(…

使用iframe 发现样式错位的解决办法

原理就是默认隐藏 点击的时候(或者需要的时候)展示出来 方法二 宽高为0

c# Linq 及其扩展方法的使用

public class LinqShow{/// <summary>/// Linq to object(数组、集合&#xff09;--内存里面的数据/// Linq to sql(查询数据库用的&#xff09;--在数据库数据/// Linq XML查询XML文件/// </summary>List<Students> studentsList new List<Students>…

nacos网关

目录 拉取docker镜像 环境配置 网关搭建架构 wemedia-gateway网关配置 依赖 启动类配置 网关yml配置 nacos配置中心配置网关 wdmedia服务配置 依赖 启动类配置 yml配置 nacos配置 nacos中的配置共享 nacos配置 wmedia模块中yml的配置 参考:https://blog.csdn.net/…

Java-抽象类、抽象方法

【1】抽象类和抽象方法的关系&#xff1a; 抽象类中可以定义0-n个抽象方法。 【2】抽象类作用&#xff1a; 在抽象类中定义抽象方法&#xff0c;目的是为了为子类提供一个通用的模板&#xff0c;子类可以在模板的基础上进行开发&#xff0c;先重写父类的抽象方法&#xff0c…

springBoot中starter

springBoot项目中引入starter 项目引入xxljob&#xff0c;仅需要导入对应的starter包&#xff0c;即可进行快速开发 <dependency><groupId>com.ydl</groupId><artifactId>xxl-job-spring-boot-starter</artifactId><version>0.0.1-SNAPS…

深度学习知识点

深度学习过程 data [] for i,d in enumerate(data):image,label d image,label image.cuda(),label.cuda()img net(image)optimizer.zero_grad()#需要将梯度信息清零&#xff0c;因为梯度计算是按照batch分批次计算的&#xff0c;如果这一批batch没清零&#xff0c;会影响…