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

发布于:2025-06-02 ⋅ 阅读:(28) ⋅ 点赞:(0)

一、基础语法

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=name
        self.age=age
        print("初始化!")
    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)

在这里插入图片描述

维度即为轴。那什么是秩(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')

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到