NumPy及Matplotlib基本用法

NumPy及Matplotlib基本用法

  • 导语
  • NumPy
    • 导入与生成
    • 算术运算
    • N维数组
    • 广播
    • 元素访问
  • Matplotlib
    • 简单图案绘制
    • 多函数绘制
    • 图像显示
    • 参考文献

导语

深度学习中经常需要对图像和矩阵进行操作,好在python提供了Numpy和Matplotlib库,前者类似一个已经定义的数组类,支持多维,后者和matlab一脉相承,用法也大同小异

NumPy

导入与生成

import numpy as np#常用写法
a=np.array([1.1,2.1,3.4])
print(a)
print(type(a))

结果

算术运算

可以看到,各种算术运算的结果是将对应项进行加减乘除,必须保证矩阵同型,如果第二个操作数只有一个,那么就代表对矩阵的每一项做该操作。

import numpy as np#常用写法
a=np.array([1.0,2.0,3.0])
b=np.array([5.0,6.0,7.0])
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a/2.0)

在这里插入图片描述

N维数组

NumPy针对的不只是一维数组,也可以是多维数组,常用的对象是矩阵。

import numpy as np#常用写法
a=np.array([[0,1],[2,3]])
print(a)
print(a.shape)
print(a.dtype)
print(a*a)
print(a+a)
print(a*20)

在这里插入图片描述

广播

多用于高维数组和低维数组之间,简单理解就是对数组的每个元素进行与低维数组的运算,逻辑上可以理解为低维被拓展成了与对应数组同维度的数组,例子中可以看到输出结果和高维的a相同。

import numpy as np#常用写法
a=np.array([[0,1],[2,3]])
b=np.array([[3,4]])
print(a*b)

在这里插入图片描述

元素访问

访问很简单,数组是怎么访问的就怎么写。

import numpy as np#常用写法a=np.array([[11,12],[13,14],[15,16]])print(a)#全部数据print(a[0])#输出一行print(a[0][1])#输出一个for i in a:#按行遍历print(i)a=a.flatten()#转换成一维数组
print(a)print(a[np.array([0,2,3])])#输出对应下标元素print(a>13)#判断大于13的结果print(a[a>13])#返回一个只有大于13的数组

在这里插入图片描述

Matplotlib

Python中用于绘制图形的库,看名字就知道和matlab很有关,实际上用法也是大同小异。

简单图案绘制

import numpy as np
import matplotlib.pyplot as pltx=np.arange(0,5,0.2)#范围0~5,步长0.2
y=np.cos(x)plt.plot(x,y)#画函数
plt.show()

在这里插入图片描述

多函数绘制

import numpy as np
import matplotlib.pyplot as pltx=np.arange(0,5,0.2)#范围0~5,步长0.2
y1=np.cos(x)
y2=np.sin(x)plt.plot(x,y1,label="cos")
plt.plot(x,y2,linestyle="--",label="sin")
plt.xlabel("x")
plt.ylabel("y")
plt.title('sin&cos')
plt.legend()
plt.show()

在这里插入图片描述

图像显示

使用imshow显示,imread读入。

import matplotlib.pyplot as plt
from matplotlib.image import imreadimg=imread('xxx.png')
plt.imshow(img)
plt.show()

参考文献

  1. 《深度学习入门——基于Python的理论与实践》

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

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

相关文章

基于Springboot+Vue的Java项目-鲜牛奶订购系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

资料总结分享:SAM,bam,bed文件格式

目录 sam文件 bam文件 bed 文件 sam文件 SAM(Sequence Alignment/Map)文件是存储测序数据比对结果的一种常见格式。SAM文件通常用于存储DNA或RNA测序数据在参考基因组上的比对结果。 SAM文件由多行文本组成,每一行代表一个比对结果。SAM文…

.[[MyFile@waifu.club]].svh勒索病毒数据库恢复方案

.[[MyFilewaifu.club]].svh勒索病毒有什么特点? .[[MyFilewaifu.club]].svh是一种最近多发的勒索病毒,它通过加密受害者的文件并要求支付赎金来解锁,从而达到勒索钱财的目的。恢复重要数据请添加技术服务号(safe130)。以下是关于这种病毒的详…

数字社交风潮:解析Facebook的影响力

随着互联网的普及和科技的发展,数字社交媒体已经成为现代社会不可或缺的一部分。在众多的社交媒体平台中,Facebook作为其中的佼佼者,影响着数以亿计的用户。本文将深入解析Facebook的影响力,探讨其在数字社交风潮中的地位和作用。…

Python网络协议socket

01 协议基础 01 网络协议 协议:一种规则 网络协议:网络规则,一种在网络通信中的数据包的数据规则 02 TCP/IP协议 osi模型 tcp/ip协议 03 tcp协议 TCP协议提供了一种端到端的、基于连接的、可靠的通信服务。 三次握手 创建连接 四次挥手…

Internet接入技术

internet接入技术 发展 1960s-1980s 早期互联网雏形ARPANET发展,主要限于研究机构和大学之间,通过专用线路连接。 1990s初期 拨号接入开始普及,用户通过电话线和调制解调器以低速(起初为14.4Kbps,后来提升到56Kbps&a…

unity华为sdk接入指路指南

目前比较靠谱的几个方案:试过几个仅供参考 温馨提示:最高目前可支持方案到unity2021版本以下,以上请联系华为官方寻求技术支持 Unity集成华为游戏服务SDK方式(一):集成Unity官方游戏SDK: 华为…

SQL查询语句(二)逻辑运算关键字

上一篇文章中我们提到了条件查询除了一些简单的数学符号之外,还有一些用于条件判断的关键字,如逻辑判断 关键字AND,OR,NOT和范围查找关键字BETWEEN,IN等;下面我们来介绍一些这些关键字的用法以及他们所表达的含义。 目录 逻辑运算关键字 AND…

Python类方法探秘:从单例模式到版本控制

引言: 在Python编程中,类方法作为一种特殊的实例方法,以其独特的魅力在众多编程范式中脱颖而出。它们不仅提供了无需实例即可调用的便捷性,还在设计模式、版本控制等方面发挥着重要作用。本文将通过几个生动的示例,带您…

搭建Springboot的基础开发框架-01

本系列专题虽然是按教学的深度来定稿的,但在项目结构和代码组织方面是按公司系统的要求来书定的。在本章中主要介绍下基础开发框架的功能。后续所有章节的项目全是在本基础框架的基础上演进的。 工程结构介绍 SpringbootSeries:父工程,定义一…

医药垃圾分类管理系统|基于SSM医药垃圾分类管理系统的系统设计与实现(源码+数据库+文档)

医药垃圾分类管理系统 目录 基于SSM医药垃圾分类管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统登录模块 2管理员模块实现 3用户模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博…

【C语言】精品练习题

目录 题目一: 题目二: 题目三: 题目四: 题目五: 题目六: 题目七: 题目八: 题目九: 题目十: 题目十一: 题目十二: 题目十…

HarmonyOS开发案例:【计算器】

介绍 基于基础组件、容器组件,实现一个支持加减乘除混合运算的计算器。 说明: 由于数字都是双精度浮点数,在计算机中是二进制存储数据的,因此小数和非安全整数(超过整数的安全范围[-Math.pow(2, 53),Math.…

董事长张轶群刚被罚,合规问题屡见不鲜,富友支付IPO胜算几何?

第三方支付机构富友支付又双叒来冲刺上市了。 与此前两次冲刺A股不同的是,富友支付此次选择在港股上市。近日,富友支付向港交所主板递交上市申请,联席保荐人为中信证券、申万宏源香港。值得一提的是,此前的2018年、2021年&#x…

【C++】从零开始认识多态

送给大家一句话: 一个犹豫不决的灵魂,奋起抗击无穷的忧患,而内心又矛盾重重,真实生活就是如此。 ​​​​ – 詹姆斯・乔伊斯 《尤利西斯》 _φ(* ̄ω ̄)ノ_φ(* ̄ω ̄)&…

Redis(Redis配置和订阅发布)

文章目录 1.Redis配置1.网络配置1.配置文件位置 /etc/redis.conf2.bind(注销支持远程访问)1.默认情况bind 127.0.0.1 只能接受本机的访问2.首先编辑配置文件3.进入命令模式输入/bind定位,输入n查找下一个,shift n查找上一个&…

SpringBoot的@Async注解有什么坑?

前言 SpringBoot中,Async注解可以实现异步线程调用,用法简单,体验舒适。 但是你一定碰到过异步调用不生效的情况,今天这篇文章总结了Async注解的坑点,希望对你会有所帮助。 未启用异步支持 Spring Boot默认情况下不启…

flutter中固定底部按钮,防止键盘弹出时按钮跟随上移

当我们想要将底部按钮固定在底部,我们只需在Widget中的Scaffold里面加一句 resizeToAvoidBottomInset: false, // 设置为false,固定页面不会因为键盘弹出而移动 效果图如下

操作系统:线程相关知识

目录 1.生产消费者模型 1.1.概念引入 1.2.基于阻塞队列的生产消费模型 1.3.POSIX信号量 1.3.1.再识信号量 1.3.2.信号量接口的学习 1.4.基于环行队列的生产消费模型 1.5.深刻理解生产消费模型 2.可重入函数与线程安全 1.生产消费者模型 1.1.概念引入 生产者-消费者模型…

dvwa靶场Insecure CAPTCHA(不安全的验证码)全难度教程(附代码分析)

搭建流程 注意linux和此搭建方法一样&#xff08;建议使用windows&#xff09; CAPTCHA&#xff08;Security Level: low&#xff09; 代码分析 <?phpif( isset( $_POST[ Change ] ) && ( $_POST[ step ] 1 ) ) {// Hide the CAPTCHA form$hide_form true;// G…