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

深度学习入门--python入门2

以前学的全忘了,现在算是才开始学,有错误,恳请指正。

目录

1.4 Python脚本文件

1.4.1保存为文件

1.4.2 类

1.5 Numpy

1.5.1 导入Numpy

1.5.2  生成Numpy数组

1.5.3 Numpy的算术运算

1.5.4 Numpy的N维数组

1.5.5 广播

1.5.6 访问元素

1.6 Matplotlib

1.6.1 绘制简单的图形

1.6.2 pyplot的功能

1.6.3 显示图像

在家就是不太适合学习(至少我是),今天回学校了,继续开始下面的学习: 

1.4 Python脚本文件

1.4.1保存为文件

 为了可以在以后使用我们写的一串python代码,我们就可以将其保存为文件,也就是我们常说的.py文件,例如:

        如果想在终端执行这个文件代码,那么就需要使用cd命令进入到该文件的保存位置,然后使用python 文件名就可以执行,比如说执行上面的这个代码(代码需要输入,我忘了输入,所以报错了):

        但是在打开终端的时候,默认是在C盘下,如果你的代码在其他盘,那么就需要先转到该盘,然后再执行,就比如说我的在D盘下,所以就先转到D盘,再使用cd进入相应文件夹,去执行相应文件。

运行结果如下:

1.4.2 类

python中自有的类比如:int,float。但是,有时候我们需要自定义类,比如:人,那么人这个类就有自己的属性(比如姓名),也有自己的方法(比如人唱歌),感觉这里和Java中的一样。但是对于他的构造函数,有一定的差别。

python中定义类是使用class 类名:来定义,然后下面写函数,首先就是构造函数,然后就是类的其他方法。

例如:

但是我有一下疑问:

1、定义类的时候必须写构造函数嘛?

2、为什么要有实例变量self.name

解答(来自ai):

  1. 定义类时不需要必须写构造函数,但显式定义__init__方法可以让对象初始化更加方便和清晰。

  2. **实例变量self.name**是必要的,因为它允许每个对象独立存储数据,而self是访问当前对象属性和方法的关键。

如果将上述的代码修改为没有显形的构造函数,那么修改的结果如下:

此时需要手动为对象添加属性。

1.5 Numpy

numpy函数用于数组、矩阵等的数值计算。

1.5.1 导入Numpy

python中函数的导入使用的函数引用是使用import

import numpy as np

意思就是导入numpy函数,然后将此函数命名为np。即以后在使用numpy函数的时候可以直接用你np来代替(下面使用的时候,就直接按照这个来代替了)。

1.5.2  生成Numpy数组

使用的语法是np.array()

一维数组,就是一个中括号。例如:

x = np.array([1,2,3])

二维数组就是两个中括号,例如:

x = np.array([[1,2,3],[2,3,4]])

多维数组道理一样,一直往下写就可以了。

如果想要知道x的类型,使用的还是type()函数。

例如:

1.5.3 Numpy的算术运算

算术运算常见的也就是加减乘除,如果说两个运算的数值,维数相同,那么直接一对一那样运算即可。例如:

从上述例子可以看出,相同维度,只是相同位置进行运算即可。

1.5.4 Numpy的N维数组

可以从上面的例子看出N维数组的样子,二维数组又可以看作是一个矩阵,对于矩阵的运算,我们在前面例子已经看到了,对于相同维数的运算,就是直接对应元素计算即可。

若想要知道N维数组的形状,那么可以用shape(这里shape后面是没有括号的,要注意),例如:

若想知道里面元素的类型,可以使用dtype(后面依旧没有()) ,例如:

1.5.5 广播

Numpy不仅可以进行对应元素的运算,还可以和标量进行运算,在运算的过程中,就需要提到广播了。

我理解的就是,根据所给的数组,将现有的标量进行一个扩写。

例如:现在有数组c,有标量q=2。

若想进行c和q的运算,那么就需要将q扩展成一个与c维度相同的数据进行运算。

得到的结果就是每个元素都乘以标量2。

1.5.6 访问元素

这里访问元素可以直接按照访问数学中的矩阵里面的元素那样,下标从0开始。比如常见的二维数组,若是只指定了一个下标,那么就输出这一行(或列)若是指定了两个下标,那么就直接输出某个元素。

例如:

如果想要遍历整个数组,可以使用for,例如:

2维以及以上的数组,可以进行展平操作,即降成一维,使用函数flatten()

例如:

然后就可以单纯的对里面的元素进行分析。如果使用比较算数符,比如:>,那么输出的结果就是布尔型,例如:

1.6 Matplotlib

Matplotlib常用于绘制图形,实现数据的可视化。

1.6.1 绘制简单的图形

绘制图形的时候,使用的是matplotlib的pyplot模块。

例如:绘制sin函数

#首先导入所需模块,需要的是处理数据的和绘制图形的
import numpy as np
import matplotlib.pyplot as plt#设置数据(生成数据)
x = np.arange(0,6,0.1)
y = np.sin(x)#绘制图形
plt.plot(x,y)
plt.show()

绘制结果:

1.6.2 pyplot的功能

pyplot不仅可以绘制图形,还可以对图形进行添加标签、标题等。

例如:绘制sin&cos函数图形,并添加主题和标签。

#导入模块
import numpy as np
import matplotlib.pyplot as plt#生成数据
x = np.arange(0,6,0.1)
y1 = np.sin(x)
y2 = np.cos(x)#添加标签,主题等
plt.plot(x,y1,label="sin")
plt.plot(x,y2,linestyle="--",label="cos") #使用linestyle定义绘制曲线的款式
plt.xlabel("x")
plt.ylabel("y")
plt.title("sin&cos")
plt.legend()
plt.show()

绘制结果:

 

1.6.3 显示图像

前面提到的plt.show()是用来显示绘制的图形,这里的是显示图像,也就是对现有的某种图片进行显示。

使用的imshow()方法。图像的读入使用的是matplotlib.image的imread()方法。

注意:这里我在没写代码之前以为使用了imshow()方法就不需要show来显示的,但是事实并不是这样。

  • plt.imshow():用于将图像数据加载到当前图形中,但不会显示图形窗口。

  • plt.show():用于显示图形窗口,是将图形渲染到屏幕上的关键步骤。

例如:随机读一个棉花的RGB图:

#导入所需模块和函数
import matplotlib.pyplot as plt
from matplotlib.image import imread#读入图像
imag = imread("D:/5.23/zc-x7/zc-x7-20.tif")
plt.imshow(imag)plt.show()

显示结果:

除了上面注意点,还有一个要注意的就是,自己复制的路径很可能是反斜杠(\,用来转义的),但是这里的路径是需要斜杠(/)的。

ok,第一章python基础就先这样了,后面遇到什么不会的,就再学吧,明天开始学习下一章,感知机。

相关文章:

深度学习入门--python入门2

以前学的全忘了,现在算是才开始学,有错误,恳请指正。 目录 1.4 Python脚本文件 1.4.1保存为文件 1.4.2 类 1.5 Numpy 1.5.1 导入Numpy 1.5.2 生成Numpy数组 1.5.3 Numpy的算术运算 1.5.4 Numpy的N维数组 1.5.5 广播 1.5.6 访问元素…...

题海拾贝:【枚举】P2010 [NOIP 2016 普及组] 回文日期

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 1、题…...

Mac端homebrew安装配置

拷打了一下午o3-mini-high&#xff0c;不如这位博主的超强帖子&#xff0c;10分钟结束战斗 跟随该文章即可&#xff0c;2025/2/19亲测可行 mac 安装HomeBrew(100%成功)_mac安装homebrew-CSDN博客文章浏览阅读10w次&#xff0c;点赞258次&#xff0c;收藏837次。一直觉得自己写…...

Web - JS基础语法与表达式

概述 这篇文章主要介绍了 JavaScript 的基础语法&#xff0c;包括代码书写位置、ERPL 环境、变量&#xff08;命名规则、默认值、初始化&#xff09;、数据类型&#xff08;基本和复杂&#xff0c;及各类型特点、转换&#xff09;、表达式和运算符&#xff08;算数、特殊算数、…...

Python高级语法之selenium

目录&#xff1a; 1、selenium的使用2、selenium元素定位3、selenium使用功能Phantomjs模拟浏览器启动4、selenium使用功能ChromsHandless模拟浏览器启动 1、selenium的使用 2、selenium元素定位 3、selenium使用功能Phantomjs模拟浏览器启动 4、selenium使用功能ChromsHandles…...

AIP-148 标准域

编号148原文链接AIP-148: Standard fields状态批准创建日期2020-10-06更新日期2020-10-06 一些概念在任何API集合中都很常用。对于这些概念&#xff0c;使用统一的标准域名字和行为来表达它们&#xff0c;是非常有用的。 指南 标准域 应当 用于描述其相应概念&#xff0c; 不…...

Docker构建时,设定默认进入的工作目录的方法

在 Docker 中,你可以通过不同的方式来设定容器默认进入的目录,以下针对不同场景分别介绍具体方法: 1. 使用 Dockerfile 设定工作目录 如果你是通过构建镜像的方式来运行容器,那么可以在 Dockerfile 中使用 WORKDIR 指令来设置容器启动时的默认工作目录。以下是具体步骤:…...

2025年3月最新算法-鲸鱼迁徙优化算法Whale Migration Algorithm-附Matlab免费代码

引言 本期介绍了一种基于座头鲸协同迁移行为的创新生物启发式优化方法——鲸鱼迁徙优化算法Whale Migration Algorithm&#xff0c;WMA。该算法于2025年3月最新发表在期刊 Results in Engineering 在本节中&#xff0c;我们概述了开发鲸鱼迁移算法&#xff08;WMA&#xff09;…...

day56 第十一章:图论part06

108.冗余连接 注意init初始化 改进&#xff1a; 其实只有一条边冗余&#xff0c;改为&#xff0c;如果两条边在同一个集合里&#xff0c;就输出&#xff0c;不然加入。 #include <iostream> #include <vector> using namespace std;int n 1005; vector<int>…...

flowable适配达梦数据库

文章目录 适配相关问题无法从数据库产品名称“DM DBMS”中推断数据库类型分析解决 构建ibatis SqlSessionFactory时出错&#xff1a;inStream参数为null分析解决 liquibase相关问题问题一&#xff1a;不支持的数据库 Error executing SQL call current_schema: 无法解析的成员访…...

Jenkins整合Jmeter实现接口自动化测试

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、安装jmeter 下载&#xff1a;http://jmeter.apache.org/download_jmeter.cgi 这里我用了一台Windows安装jmeter用来写接口测试的脚本&#xff0c;启动前修改j…...

高级推理的多样化推理与验证

25年2月来自波士顿大学、NotBadMath.AI、谷歌、哥伦比亚大学、MIT、Intuit公司和斯坦福大学的论文“Diverse Inference and Verification for Advanced Reasoning”。 OpenAI o1、o3 和 DeepSeek R1 等推理 LLM 在数学和编码方面取得重大进展&#xff0c;但仍发现 IMO 组合问题…...

深入理解 MySQL 8 C++ 源码:SELECT MOD(MONTH(NOW()), 2) 的函数执行过程

MySQL 作为最流行的关系型数据库之一&#xff0c;其内部实现机制一直是开发者探索的热点。本文将以一条简单的 SQL 查询 SELECT MOD(MONTH(NOW()), 2) 为例&#xff0c;深入分析 MySQL 8 源码中内置函数 MOD、MONTH 和 NOW 的执行过程&#xff0c;揭示其底层实现逻辑。 一、SQL…...

清华大学:DeepSeek与AI幻觉(31页PDF)

PDF深入探讨了AI幻觉的概念、原因、评测方法及其实用应用&#xff0c;特别是在金融领域的具体案例。首先介绍了AI幻觉的定义&#xff0c;主要包括数据偏差、泛化困境、知识固化和意图误解四种情况&#xff0c;以及这些因素导致AI产出不合理结果的原因。随后&#xff0c;通过音乐…...

AWS云从业者认证题库 AWS Cloud Practitioner(2.21)

题库持续更新&#xff0c;上方二维码查看完整题库&#xff01; 公司希望减少开发人员用于运行代码的物理计算资源,通过启用无服务器架构&#xff0c;哪种服务可以满足该需求? A&#xff1a; Amazon Elastic Compute Cloud (Amazon EC2) B&#xff1a; AWS Lambda C&#xff1a…...

CompletableFuture 使用和源码解读

引言 CompletableFuture 是 Java 8 引入的一个强大的异步编程工具&#xff0c;用于处理异步操作和处理结果。它实现了 Future 和 CompletionStage 接口&#xff0c;提供了丰富的方法来处理异步任务的完成、组合和异常处理。 CompletableFuture本质是对异步线程的返回值…...

C++与Python:两种编程语言的区别

C和Python都是当今编程领域广泛使用的语言&#xff0c;它们各有特色&#xff0c;适用于不同的开发场景。本文将从语言特性、性能、学习难度、应用领域等多个方面探讨C与Python之间的区别。 一、语言特性 类型系统&#xff1a; C&#xff1a;是一种静态类型语言&#xf…...

网络工程师 (43)IP数据报

前言 IP数据报是互联网传输控制协议&#xff08;Internet Protocol&#xff0c;IP&#xff09;的数据报格式&#xff0c;由首部和数据两部分组成。 一、首部 IP数据报的首部是控制部分&#xff0c;包含了数据报传输和处理所需的各种信息。首部可以分为固定部分和可变部分。 固定…...

京准电钟:水利控制系统网络时间同步设计与应用

京准电钟&#xff1a;水利控制系统网络时间同步设计与应用 京准电钟&#xff1a;水利控制系统网络时间同步设计与应用 引言 在水利工程中&#xff0c;控制系统的高效运行依赖于精准的时间同步。水电站、泵站、闸门控制、水文监测等子系统的协同作业需要毫秒甚至微秒级的时间…...

QML 实现一个动态的启动界面

QML 实现一个动态的启动界面 一、效果查看二、源码分享三、所用到的资源下载 一、效果查看 二、源码分享 工程结构 main.qml import QtQuick import QtQuick.Controls import QtQuick.Dialogs import Qt.labs.platformWindow {id:windowwidth: 640height: 400visible: truetit…...

伪404兼容huawei生效显示404

根据上述思考&#xff0c;以下是详细的中文分步说明&#xff1a; --- **步骤 1&#xff1a;获取目标设备的User-Agent信息** 首先&#xff0c;我们需要收集目标设备的User-Agent字符串&#xff0c;包括&#xff1a; 1. **iPhone设备的User-Agent**&#xff1a; Mozi…...

程序代码篇---Python指明函数参数类型

文章目录 前言简介一、函数参数的类型指定1. 基本类型提示2. 默认参数3. 可变参数4. 联合类型&#xff08;Union&#xff09;5. 可选类型&#xff08;Optional&#xff09;6. 复杂类型 二、返回值的类型指定1. 基本返回类型2. 无返回值&#xff08;None&#xff09;3. 返回多个…...

【论文阅读】SAM-CP:将SAM与组合提示结合起来的多功能分割

导言 近年来&#xff0c;视觉基础模型的快速发展推动了多模态理解的进步&#xff0c;尤其是在图像分割任务中。例如&#xff0c;Segment Anything模型&#xff08;SAM&#xff09;在图像Mask分割上表现出色&#xff0c;但在语义及实例分割方面仍存在局限。本文提出的SAM-CP&am…...

ecovadis社会企业责任认证

EcoVadis 是一家全球性的企业社会责任 (CSR) 评级机构&#xff0c;旨在通过评估企业在环境、劳工与人权、商业道德和可持续采购等方面的表现&#xff0c;帮助提升其可持续性和社会责任实践。 EcoVadis 认证的核心内容 环境 评估企业在能源消耗、碳排放、废物管理等方面的表现。…...

机器视觉3D中,深度图与点云图数据对比分析

在机器视觉3D中,深度图(Depth Map)和点云图(Point Cloud)是两种不同的数据表示形式,主要区别如下: 数据维度与结构 深度图 二维矩阵:每个像素存储对应场景中某一点的深度值(即到相机的距离)。 坐标系:基于图像坐标系(2D),每个像素的坐标是 (u, v),对应的深度值为…...

逻辑架构与软件架构在PREEvision中的设计关系

1 Introduction 在如今汽车电子系统的开发过程中&#xff0c;系统架构设计是至关重要的环节。无论是汽车控制系统、信息娱乐系统&#xff0c;还是电动驱动系统&#xff0c;架构设计都决定了整个系统的功能、性能以及后期的可维护性和可扩展性。 在往期文章中&#xff0c;我们…...

机器学习和深度神经网络 参数调参数 太麻烦,非常费时间怎么办,用自动化超参数优化方法

自动化超参数优化方法主要包括以下几种‌&#xff1a; ‌网格搜索&#xff08;Grid Search&#xff09;‌&#xff1a;网格搜索是通过在给定的超参数搜索空间内尝试所有可能的组合&#xff0c;最后找出最优的超参数组合。这种方法虽然直观&#xff0c;但计算成本较高&#xff0…...

武汉火影数字|VR沉浸式空间制作 VR大空间打造

VR沉浸式空间制作是指通过虚拟现实技术创建一个逼真的三维环境&#xff0c;让用户能够沉浸在这个环境中&#xff0c;彷佛置身于一个全新的世界。 也许你会好奇&#xff0c;VR 沉浸式空间究竟是如何将我们带入那奇妙的虚拟世界的呢&#xff1f;这背后&#xff0c;离不开一系列关…...

MQTT的连接配置以及重连机制和遇到的问题--------求如何修改更加好

今天遇到了一个mqtt的问题&#xff0c;虽然解决了&#xff0c;但是感觉不是很好&#xff0c;希望大家多指点 这是配置文件 customer:mqtt:broker: tcp://ip:1883clientList:- clientId: nays_servicesubscribeTopic: xxxxxx- clientId: receive_servicesubscribeTopic: xxxxx…...

大数据学习之任务流调度系统Azkaban、Superset可视化系统

一.任务流调度系统Azkaban 1.课程介绍 2.为什么需要工作流调度系统 3.AZKABAN是什么 4.AZKABAN下载 5.制作安装包 6.tar包准备 7.MYSQL配置AZKABAN 8.配置EXECUTOR SERVER 9.配置WEBSERVER 10.单作业实战_yaml语言(今天稍晚更新) 11.单作业实战 12.多作业依赖实战 13.失败自动重…...