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

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

一、基础语法

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')

在这里插入图片描述

相关文章:

  • 【复杂网络分析】什么是modularity?
  • 【Python Cookbook】文件与 IO(三)
  • [Linux] Linux 系统从启动到驱动加载
  • 启动你的RocketMQ之旅(七)-Store存储原理
  • Linux系统配置Docker镜像加速
  • 定时任务:springboot集成xxl-job-core(二)
  • [学习] PID算法原理与实践(代码示例)
  • 彻底理解Spring三级缓存机制
  • 助力高校AI教学与科研:GpuGeek推出618算力支持活动
  • SAP学习笔记 - 开发18 - 前端Fiori开发 应用描述符(manifest.json)的用途
  • 【python基础知识】字典
  • C++多重继承详解与实战解析
  • 编程基础:通信
  • [SAP] 矩阵复制(Matrix Copy)
  • Linux开发追踪(IMX6ULL篇_第一部分)
  • 智语心桥:当AI遇上“星星的孩子”,科技如何点亮沟通之路?
  • 【办公类-22-05】20250601Python模拟点击鼠标上传CSDN12篇
  • 机器学习有监督学习sklearn实战二:六种算法对鸢尾花(Iris)数据集进行分类和特征可视化
  • 核心机制:TCP 断开连接(四次挥手)
  • 人工智能在智能能源管理中的创新应用与未来趋势
  • 网站架构设计图/互联网推广中心
  • 长春网站建设推荐网诚传媒/网站优化排名怎么做
  • 黑马程序员上海校区/北京seo全网营销
  • 有域名后怎么建网站/西安优化seo托管
  • 广西钦州有人帮做网站的公司吗/快速排名优化推广价格
  • zblog做的商城网站/花关键词排名系统