python 笔记

pdb

pdb开始调试python

python -m pdb 源程序.py

pdb设置断点

  • linenumber是断点所在行数
break linenumber
b linenumber
  • 取消断点
clear linenumber

重新运行

run
注意分别:r是return的意思,就是执行到函数结束

单步执行

n(ext)

进入到函数的内部

s(tep)

执行到下一个断点或程序结束

c(ontinue)

调用栈查看命令

w(here)

查看当前函数调用堆栈

up

向上一层函数查看调用堆栈

down

查看源代码

ll 查看当前函数的源代码

import

import 用法

  • 导入整个模块。基本的import语句用于导入整个模块,可以使用模块名直接访问模块中的内容。例如,import math后可以使用math.sqrt()或math.fabs()等函数。

  • 为模块指定别名。使用as关键字可以为导入的模块指定别名,例如import math as m,然后可以使用m.sqrt()代替math.sqrt()。

  • 导入模块中的特定成员。使用from…import…语句可以导入模块中的特定函数、变量或类,例如from math import sqrt,这样可以直接使用sqrt()函数,而不需要通过模块名前缀。

  • 导入模块中的所有内容。from…import *语句用于导入模块中的所有函数、类和变量,这样可以直接使用这些内容,而无需通过模块名前缀。但这种方法可能导致命名冲突,因此不推荐在大型项目中使用。
    + 导入包中的模块。可以使用点模块名来导入包中的模块,例如import os或import math
    +

python格式化字符串

 print(f"epoches:{epoch},accurate={acc}")

lambda 匿名函数

用法

在这里插入图片描述

numpy

导入numpy模块

import numpy as np #导入numpy并设置别名

numpy常用函数

shape和ndim

在这里插入图片描述

科学计数法

1e-6 = 1乘10的负6次方

reshape

reshape()函数用于在不更改数据的情况下为数组赋予新形状

>>> c=np.array([[2,3,4],[5,6,7]])
>>> c
array([[2, 3, 4],
       [5, 6, 7]])
       
>>> c=c.reshape(3,2)
>>> c
array([[2, 3],
       [4, 5],
       [6, 7]])

在这里插入图片描述

np.argmax

在这里插入图片描述

import numpy as np
a = np.arange(6).reshape(2,3)
print('a数组:\n{}'.format(a))
print('a数组中最大值的索引:{}'.format(np.argmax(a)))
print('a数组沿列方向最大值的索引:{}'.format(np.argmax(a, axis=0)))
print('a数组沿行方向最大值的索引:{}'.format(np.argmax(a, axis=1)))
b = np.arange(6)
b[1] = 5
print('b数组:\n{}'.format(b))
print('b数组最大值的索引:{}'.format(np.argmax(b)))  # 仅仅返回5第一次出现的位置

a数组:
[[0 1 2]
[3 4 5]]
a数组中最大值的索引:5
a数组沿列方向最大值的索引:[1 1 1]
a数组沿行方向最大值的索引:[2 2]
b数组:
[0 5 2 3 4 5]
b数组最大值的索引:1

np.sum

  • 不传参数是对所有元素求和
    传axis(看懂了一点,以后要用的时候再看看)
    传送門

range

生成连续序列

for i in range(start,end): #start 到 end-1间隔为1 的序列

生成不连续序列

for i in range(start,end,interval): #start 到 end-1间隔为interval 的序列

matplotlib.pylab

导入

import matplotlib.pylab as plt

xlabel ylabel

  • x轴,y轴的介绍
plt.xlabel("x")
plt.ylabel("f(x)")

plot

在这里插入图片描述

linestyle:

在这里插入图片描述

plt.plot(x,y,linestyle='--')

plt.legend

在这里插入图片描述

plt.show

  • 用来显示图标

print

print 格式化输出

name = 'Alice'
age = 25
print("My name is %s and I am %d years old." % (name,age))

格式化浮点数

在这里插入图片描述

打印格式化浮点数

print('%10.3f' % 3.1415926) 

字典

定义

  • 和C++的map差不多,都是保存键值对

初始化

  • 空字典
network = {}

  • 赋值
#法一
network = {'W1':np.array([[0.1,0.3,0.5],[0.2,0.4,0.6] ]) }
#法二
network['W1'] = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]])

torch

矩阵乘法

"""
1.a*b 按位相乘
2.torch.matmul(a,b) == a @ b,支持broadcast
	- 2.1.torch.dot(),1d,点积,不支持broadcast
	- 2.2.torch.mm(),2d,不支持broadcast
	- 2.3.torch.bmm(),3d,不支持broadcast
"""

a*b 按位相乘

在这里插入图片描述

torch.dot(),一维,向量内积

在这里插入图片描述

torch.mm 二维矩阵乘法 (n,s) *(s,t) -> (n,t)

在这里插入图片描述

torch.matmul 高维矩阵乘法,具有广播机制(torch.mm的进阶版)

详细教程

torch.bmm 三维矩阵乘法 (b,n,s) *(b,s,t) -> (b,n,t)

看标题就已经懂了

torch.utils

torch.utils.data.Dataset

  • 传入DataLoader需要是这个类
  • 可以自定义类继承Dataset类,也可以用torch.utils.data.TensorDataset转换

torch.utils.data.DataLoader

DataLoader(TensorDataset对象,batch_size每批大小,shuffle是否打乱顺序,num_workers加载线程数)

torch.nn

Layer们

torch.nn.Linear 线性层/全连接层
y = xw + b   # 输入x [num_samples, in_features]
						# 训练网络w [in_features, out_features]
						# 训练偏置 b[num_samples, out_features]

torch.nn.Sequential

  • 按照特定的顺序排列一系列的网络层
import torch.nn as nn
model = nn.Sequential(
		nn.Linear(in_features=10, out_features=20),  #第一个全连接层
		nn.ReLU(), 	#激活函数
		nn.Linear(in_features=20, out_features=1)	#第二个全连接层,输入特征为20,输出特征为1
)

torchvision

torchvision.datasets

  • 下载数据示例:fashion-mnist
import torchvision
from torchvision import transforms

trans = transforms.ToTensor()
mnist_train = torchvision.datasets.FashionMNIST(root="../data",train=True, transform=trans, download=True)
mnist_test = torchvision.datasets.FashionMNIST(root="../data",train=False, transform=trans, download=True)

len(mnist_train), len(mnist_test)	#60000, 10000
mnist_train[0][0].shape			#[1,28,28]
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python笔记.md 是一个用于记录Python编程相关内容的markdown文档。 在Python学习过程中,学习者通常会遇到各种问题和疑惑,需要有一个地方来记录学习笔记和重要概念,以方便日后复习和查阅。Python笔记.md 就是一个很好的选择。 Python笔记.md 可以按照自己的需要来组织内容,比如可以分为不同的章节或主题,并使用markdown语法来格式化文档,使其更加清晰易读。 在Python笔记.md中,可以记录Python的基础语法、常用数据结构、函数、类、模块等内容。此外,还可以记录一些常见的错误和解决方法,以便日后遇到类似问题时能够快速找到解决方案。 Python笔记.md 还可以用来记录自己的思考和理解。在学习过程中,我们常常会思考某个概念或代码背后的原理,这时候可以将自己的思考记录在笔记中,以便后续复习和回顾。 使用Python笔记.md 还可以方便与他人分享学习心得。可以在文档中加入注释或标题,使得文档更加易读和友好。同时,也可以将Python笔记.md 推送到版本控制系统中,与他人共享和共同编辑。 总之,Python笔记.md 是一个非常有用的工具,可以帮助学习者系统地记录、整理和复习Python编程相关的知识和经验。无论是初学者还是有经验的开发者,都可以从中受益,并提高自己的编程技能。 ### 回答2: Python笔记.md是一个使用Markdown语法编写的Python笔记文档。Markdown语法是一种轻量级的标记语言,可以快速地编辑和排版文档。 在Python笔记.md中,可以记录Python程序设计的相关知识、概念和技巧。通过使用Markdown语法,可以方便地插入代码块、链接、图片以及其他强调和排版格式,使得笔记更加直观和易读。 Python笔记.md可以按照不同的章节和主题组织内容,方便快速查找和阅读。在每个章节中,可以记录不同的Python编程概念,如数据类型、控制结构、函数、类等。可以通过示例代码和解释说明来详细解释这些概念的用法和特点。 在笔记中,还可以记录一些Python的常见问题和解决方案,例如常见错误、调试技巧等。这些内容可以帮助初学者更好地理解和掌握Python语言。 此外,Python笔记.md还可以连接到其他的Python资源,如官方文档、教程、在线代码编辑器等。这样可以提供更多的学习和参考资料。 总之,Python笔记.md是一个有条理、易读和方便编辑的Python学习笔记文档,可以帮助人们更好地学习和理解Python编程语言。 ### 回答3: Python笔记md是一种用来记录Python编程语言相关内容的文本文件格式。它使用Markdown语法来快速、简洁地编写和格式化笔记Python笔记md的优点是: 1. 简单易懂:Markdown语法简洁明了,使用起来非常简单,即便没有编程背景的人也能快速上手。 2. 跨平台兼容:无论是在Windows、Mac还是Linux系统中,Python笔记md都可以轻松使用。 3. 可读性强:Python笔记md的文本格式使得代码和说明可以同时显示,方便读者理解和学习。 4. 方便分享和发布:Python笔记md可以导出为HTML或PDF格式,方便分享给其他人或者发布到网络上。 5. 与开发工具兼容:大多数集成开发环境(IDE)和文本编辑器都支持Markdown语法,可以实时预览和编辑笔记。 使用Python笔记md可以帮助程序员记录代码和相关的解释和说明,方便复习和查看。它还可以用于编写技术博客、文档和教育材料等。而且由于其文本格式的特点,Python笔记md也非常适合使用版本控制系统进行版本管理。 总而言之,Python笔记md是一种简单、灵活且易于分享的笔记格式,可以有效提高编程学习和开发的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值