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

深度学习入门--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基础就先这样了,后面遇到什么不会的,就再学吧,明天开始学习下一章,感知机。

相关文章:

  • 《深入理解JVM》实战笔记(二): 类加载机制与类加载器
  • 【数据库系统概论】第第12章 并发控制
  • 图匹配(分解)相关代码学习
  • 【Java 面试 八股文】并发编程篇
  • DeepSeek vs. ChatGPT:不同的诞生时间,对人工智能发展的不同影响
  • 基于 JavaWeb 的 Spring Boot 调查问卷管理系统设计和实现(源码+文档+部署讲解)
  • Java 内存区域详解
  • 测试data_management函数
  • python爬虫——爬取全年天气数据并做可视化分析
  • JAVA最新版本详细安装教程(附安装包)
  • 解决pyenv versions没有列出系统的python版本
  • ue5.2.1 quixel brideg显示asset not available in uAsset format
  • 2025年-G10-Lc84-235.二叉搜索树的最低公共祖先-java版
  • HarmonyOS NEXT 创新应用开发白皮书(api12+)
  • QML Image 圆角设置
  • SpringBoot核心框架之AOP详解
  • Linux 内核自旋锁spinlock(三)--- MCS locks
  • 区块链中的递归长度前缀(RLP)序列化详解
  • JCRQ1河马算法+消融实验!HO-CNN-LSTM-Attention系列四模型多变量时序预测
  • Redis中集合(Set)常见命令详解
  • 夜读|尊重生命的棱角
  • 上海北外滩,未来五年将如何“长个子”“壮筋骨”?
  • 哲学新书联合书单|远离苏格拉底
  • 江西省市场监管局原局长谢来发被双开:违规接受旅游活动安排
  • 体坛联播|郑钦文收获红土赛季首胜,国际乒联公布财报
  • 马云再次现身阿里打卡创业公寓“湖畔小屋”,鼓励员工坚持创业精神