深度学习入门Day1--Python基础

article/2025/8/7 11:33:45

一、基础语法

1.变量

python是“动态类型语言”的编程语言。用户无需明确指出x的类型是int。

x=10 #初始化
print(x) #输出x
x=100 #赋值
print(x)
print(type(x))#输出x的类型<class 'int'>

2.算术计算

>>>4*5
>20
>>>3**3#**表示乘方(3的3次方)
>27

在pyhon3.x以后的版本中,整数除以整数的结果是小数(浮点数)

3.print用法

截取字符串

 var1="RunOob" print("var1[:3]",var1[:3])#表示截取下标3以前(不包括3)的print("var1[2:5]",var1[2:5])

换行问题

 for i in range(len(list1)):print(list1[i],end='  ')#py输出是默认换行的,end=' '可以让输出内容在一行,也可以控制间隔print()for item in list4:print(item,"!!",end=" ")#再次说明''和""都一样print()
x=100
y=200
print(x,y)#使用,分割也可以让输出在一行显示

4.列表

# #列表✅✅list1 = ['Google', 'RunOob', 1997, 2000]#异构列表,意思是包含多种类型的数据。list2 = [1, 2, 3, 4, 5 ]#同构list3 = ["a", "b", "c", "d"]#双引号还是单引号看个人风格,python都一样。保存一致就行list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']##列表支持拼接、嵌套list2.append(6)list3.extend(list4)#给列表每个元素加上!for i in range(len(list3)):list3[i]+='@'print(list3[i],end=" ")

5.元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改
元组使用小括号(),列表使用方括号[]。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

tup1 = ('kfc', 'McDonald', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7)
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])
##输出结果😀
#tup1[0]:  kfc
#tup2[1:5]:  (2, 3, 4, 5)

6.字典

以键值对的形式存储数据,类似C++中的map。就像《新华字典》那样,把单词和它的含义对应存储起来。
用花括号{}定义

food={'kfc':50,'mcdonald':60}#生成字典
print (food['kfc'])#访问元素
#输出50

7.if语句

hungry=True#必须大写
if hungry:print("eat kfc,v me 50")
else:print("i am not hungry")

8.for语句

输出列表中元素,格式for…in…

for i in [1,2,3,4,5]:print(i,end=" ")

9.函数

def eat():print("eat kfc,v me 50")
eat()

10.类

这里我们定义了一个新类Man。类Man生成了实例对象m。
它的构造函数(初始化方法)会接收参数name和age,然后用这个参数初始化实例变量self.name和self.age。实例变量是存储在各个实例中的变量。

class Man:def __init__(self,name,age):#构造函数self.name=nameself.age=ageprint("初始化!")def hello(self):print("%s今年%d岁了" %(self.name,self.age))#或 注意这两种不同的写法print("hello "+self.name+" age="+str(self.age))def goodbye(self):print("goodbye "+self.name)m=Man("jack",11) #实例化
m.hello()
m.goodbye()
  • 在上面的例子中,self 是一个指向类实例的引用,它在 __ init __ 构造函数中用于初始化实例的属性,也在 hello方法中用于访问实例的属性。通过使用 self,你可以在类的方法中访问和操作实例的属性,从而实现类的行为。
  • self 代表类的实例,而非类
    类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

二、常用库

1.数值计算NumPy

1.1 导入NumPy

import numpy as np

将numpy作为np导入,相当于起个简称

1.2 生成NumPy数组

需要使用np.array()方法。它接收Python的列表作为参数,生成NumPy数组(numpy.ndarray)

list1=[1,2,3,4,5]
np_1=np.array(list1)
print(np_1)
print(type(np_1))
#[1 2 3 4 5]
#<class 'numpy.ndarray'>

1.3 算术运算

NumPy 数组:元素之间用空格分隔,打印时格式化为 [元素1 元素2 元素3 …]

list1=[1,2,3]
list2=[4,5,6]
np_1=np.array(list1)
np_2=np.array(list2)
print(np_1+np_2)

数组np_1和数组np_2的元素个数相同时,可以对各个元素进行算术运算。个数不同则会报错,所以元素个数保持一致非常重要

list1=[1,2,3]
list2=[4,5]
np_1=np.array(list1)
np_2=np.array(list2)
print(np_1+np_2)#list1和list2一个是3个,一个是2个,报错

除此以外,还可以将NumPy数组和标量进行运算

a=2
print(np_1/a)
print(np_2*a)

1.4 N维数组

在数学上,我们把一维数组称为向量,二维数组称为矩阵。另外,可以将一般化之后的向量或矩阵统称为张量。本章将三维及以上的称为“张量”或“多维数组”
数组实例

A=np.array([list1,list2])
print(A)
print(A.shape)

在这里插入图片描述

  • 如何理解NumPy中的维度非常重要!此部分内容参考NumPy中的维度(dimension)、轴(axis)、秩(rank)的含义
    在这里插入图片描述

维度即为轴。那什么是秩(rank)?它是指轴的数量,或者维度的数量,是一个标量。

  • 对于二维数组而言,以坐标系为例,有x轴和y轴。
  • 三维数组就是x,y,z三个轴。

数组 [1,2,3], 它的维度是1,也就是有一个轴,这个轴的长度是3,而它的秩也为1。

list1=[1,2,3]
list2=[4,5,6]
list3=[7,8,9]
list4=[10,11,12]
A=np.array([list1,list2,list3,list4])
print(A)
print(A.shape)

结果
在这里插入图片描述

A=np.array([[list1,list2],[list3,list4]])

(2,2,3)相当于有2张2*3的矩阵一前一后对应摆放(想象立体的感觉)。
在这里插入图片描述

1.5 广播

在Numpy中,形状不同的数组之间也可以进行运算。
例如下图所示,2x2的矩阵和标量10之间进行乘法运算,标量10被扩展成2*2的形状,然后再与矩阵A进行乘法运算。这个巧妙的功能称为广播
在这里插入图片描述

虽然广播机制非常有用,但它也有一些限制。如果两个数组的维度不兼容,即它们在任何一个维度上都不匹配,并且没有任何一个维度等于1,那么NumPy将无法应用广播机制,并抛出异常。

1.6 访问元素

元素的索引从0开始。

print(A[0])#第0行
print(A[1])#第1行
print(A[1][2])#下标(1,2)的元素
[[1 2 3][4 5 6]]
------
[1 2 3]
[4 5 6]
6

也可以用for循环遍历

for i in A:print(i)
------
[1 2 3]
[4 5 6]

使用不等号运算符

print(A>5)
[[False False False][False False  True]]

2.可视化Matplotlib

用于绘制图形的库,在深度学习中,图形绘制和数据可视化非常重要。

2.1简单图形

使用Matplotlib中的pylot模块绘制sin函数曲线

import numpy as np
import matplotlib.pyplot as plt#生成数据
x=np.arange(-5,5,0.1)#以0.1为单位,生成-5到5的数据
y=np.sin(x)#绘制图形
plt.plot(x,y)
plt.show()

在这里插入图片描述

追加cosx

import numpy as np
import matplotlib.pyplot as plt#生成数据
x=np.arange(-5,5,0.1)#以0.1为单位,生成-5到5的数据
y1=np.sin(x)
y2=np.cos(x)
#绘制图形
plt.plot(x,y1,label='sin(x)')
plt.plot(x,y2,label='cos(x)',linestyle='--')#虚线绘制
plt.xlabel('x')
plt.ylabel('y')
plt.title('sin and cos')
plt.legend()#显示图例
plt.show()

在这里插入图片描述

2.2显示图像

pyplot中还提供了用于显示图像的方法imshow()。并且使用image模块的imread()读入图像。

import matplotlib.pyplot as plt
from matplotlib.image import imread
img=imread('kon.jpg')#读入图像
plt.imshow(img)
plt.show()

在这里插入图片描述
灰度处理

gray_img = 0.2989 * img[..., 0] + 0.5870 * img[..., 1] + 0.1140 * img[..., 2]
plt.imshow(gray_img, cmap='gray')

在这里插入图片描述


http://www.hkcw.cn/article/cKZwlfuUDg.shtml

相关文章

九坤:熵最小化加速LLM收敛

&#x1f4d6;标题&#xff1a;One-shot Entropy Minimization &#x1f310;来源&#xff1a;arXiv, 2505.20282 &#x1f31f;摘要 我们训练了 13,440 个大型语言模型&#xff0c;发现熵最小化只需要一个未标记的数据和 10 步优化&#xff0c;以实现比使用数千个数据获得的…

微服务面试(分布式事务、注册中心、远程调用、服务保护)

1.分布式事务 分布式事务&#xff0c;就是指不是在单个服务或单个数据库架构下&#xff0c;产生的事务&#xff0c;例如&#xff1a; 跨数据源的分布式事务跨服务的分布式事务综合情况 我们之前解决分布式事务问题是直接使用Seata框架的AT模式&#xff0c;但是解决分布式事务…

儿童节快乐,聊聊数字的规律和同余原理

某年的6月1日是星期日。那么&#xff0c;同一年的6月30日是星期几&#xff1f; 星期是7天一个循环。所以说&#xff0c;这一天是星期几&#xff0c;7天之后同样也是星期几。而6月30日是在6月1日的29天之后&#xff1a;29 7 4 ... 1用29除以7&#xff0c;可以得出余数为1。而…

视觉分析明火检测助力山东化工厂火情防控

视觉分析技术赋能化工厂火情防控&#xff1a;从山东事故看明火与烟雾检测的应用价值 一、背景&#xff1a;山东化工事故中的火情防控痛点 近期&#xff0c;山东高密友道化学有限公司、淄博润兴化工科技有限公司等企业接连发生爆炸事故&#xff0c;暴露出传统火情防控手段的局…

javaEE->多线程:定时器

一. 定时器 约定一个时间&#xff0c;时间到了&#xff0c;执行某个代码逻辑&#xff08;进行网络通信时常见&#xff09; 客户端给服务器发送请求 之后就需要等待 服务器的响应&#xff0c;客户端不可能无限的等&#xff0c;需要一个最大的期限。这里“等待的最大时间”可以用…

HTML表单

1. 什么是表单 表单常用格式 文本框 密码框 单选按钮 复选框 列表框 按钮 多行文本域 文件域 邮箱 网址 数字 滑块 搜索框 2. 表单的高级应用 隐藏域&#xff08;⭐&#xff09; 隐藏域在网页中会经常被使用&#xff0c;比如我们登录了以后需要持续使用我们的登录信息&#xff…

STM32F407寄存器操作(ADC非连续扫描模式)

1.前言 书接上回&#xff0c;在看手册的时候我突然发现手册上还描述了另一种ADC扫描模式&#xff0c;即非连续扫描模式&#xff0c;想着连续扫描模式都已经探索过了&#xff0c;那就顺手把非非连续模式研究一下吧。 2.理论 我们先看看手册&#xff0c;这里我就以规则通道举例…

老年照护实训室建设方案设计:基础照护与专业护理实训

老年照护实训室的建设是提升老年照护人才培养质量的关键环节&#xff0c;其方案设计需精准对接基础照护与专业护理的实训需求&#xff0c;为学习者构建理论与实践深度融合的教学场景。点击获取实训室建设方案 一、建设背景与目标 &#xff08;一&#xff09;建设背景 随着人…

C语言 — 文件

目录 1.流1.1 流的概念1.2 常见的的流 2.文件的打开和关闭2.1 fopen函数2.2 fclose函数2.3 文件的打开和关闭 3.文件的输入输出函数3.1 fputc函数3.2 fgetc函数3.3 feof函数和ferror函数3.4 fputs函数3.5 fgets函数3.6 fwrite函数3.7 fread函数3.8 fprintf函数3.9 fscanf函数 4…

13. springCloud AlibabaSeata处理分布式事务

目录 一、分布式事务面试题 1.多个数据库之间如何处理分布式事务&#xff1f; 2.若拿出如下场景&#xff0c;阁下将如何应对? 3.阿里巴巴的Seata-AT模式如何做到对业务的无侵入? 4.对于分布式事务问题&#xff0c;你知道的解决方案有哪些?请你谈谈? 二、分布式事务问题…

java多线程与JUC

进程线程 进程&#xff1a;进程是操作系统分配资源的基本单位。在电脑中&#xff0c;一个软件就是一个进程 线程&#xff1a;线程是CPU调度的基本单位&#xff0c;是进程内的执行单元。相当于一个软件中的不同功能 多线程程序的特点&#xff1a;程序可以同时去做多件事&#…

GCC 下载安装

下载 官网&#xff1a;GCC, the GNU Compiler Collection- GNU Project Cygwin linux 环境 MinGW 在 Windows 上提供 GNU 开发工具比 Cygwin 更轻量&#xff08;不模拟完整的 POSIX 环境&#xff09;选择&#xff1a;binaries选择mingw-w64

GpuGeek如何成为AI基础设施市场的中坚力量

AI时代&#xff0c;算力基础设施已成为支撑技术创新和产业升级的关键要素。作为国内专注服务算法工程师群体的智算平台&#xff0c;GpuGeek通过持续创新的服务模式、精准的市场定位和系统化的生态建设&#xff0c;正快速成长为AI基础设施领域的中坚力量。本文将深入分析GpuGeek…

DAY 35 超大力王爱学Python

知识点回顾&#xff1a; 三种不同的模型可视化方法&#xff1a;推荐torchinfo打印summary权重分布可视化进度条功能&#xff1a;手动和自动写法&#xff0c;让打印结果更加美观推理的写法&#xff1a;评估模式 作业&#xff1a;调整模型定义时的超参数&#xff0c;对比下效果。…

MYOJ_4149:(洛谷P1002)[NOIP 2002 普及组] 过河卒(坐标型DP)

题目描述 棋盘上 A 点有一个过河卒&#xff0c;需要走到目标 B 点。卒行走的规则&#xff1a;可以向下、或者向右。同时在棋盘上 C 点有一个对方的马&#xff0c;该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。 棋盘用坐标表示&#xff0…

Java高效处理大文件:避免OOM的深度实践

​关键痛点​&#xff1a;当加载10GB的CSV文件时&#xff0c;Files.readAllLines()抛出OutOfMemoryError&#xff0c;该如何解决&#xff1f; 在Java中处理大文件是开发中的高频场景&#xff0c;尤其在大数据、日志分析等领域。本文将深入探讨几种高效处理大文件的方案&#x…

Word双栏英文论文排版攻略

word写双栏英文论文的注意事项 排版首先改字体添加连字符还没完呢有时候设置了两端对齐会出现这样的情况&#xff1a; 公式文献 等我下学期有时间了&#xff0c;一定要学习Latex啊&#xff0c;word写英文论文&#xff0c;不论是排版还是公式都很麻烦的&#xff0c;而Latex一键就…

esp-idf ubuntu环境配置

常用命令 source ~/esp/esp-idf/export.shidf.py --list-targets idf.py set-target 将清除 build 目录&#xff0c;并重新生成 sdkconfig 文件&#xff0c;原来的 sdkconfig 文件保存为 sdkconfig.old。 idf.py build idf.py flashNo module named pip wget https://bootst…

BFS入门刷题

目录 P1746 离开中山路 P1443 马的遍历 P1747 好奇怪的游戏 P2385 [USACO07FEB] Bronze Lilypad Pond B P1746 离开中山路 #include <iostream> #include <queue> #include <cstring> using namespace std; int n; int startx, starty; int endx, endy; …

Cypress + TypeScript + Vue3

🚀 从零构建 Cypress + TypeScript + Vue3 组件测试环境【详细实战教程】 组件测试是前端开发中不可忽视的一环,它能够帮助我们在开发阶段就发现 UI 与交互逻辑问题。本文将带你手把手搭建基于 Cypress + TypeScript + Vue3 的组件测试环境,包含完整目录结构、配置文件、组…