1、保存:ctrl+s 随时保存,养成习惯
2、tab键:默认四个空格
3、注释:# 养成习惯,方便自己,方便他人
4、行连接符(代码太长需要分行时用):\
仅仅是分行用的,代码内容没有断
1、保存:ctrl+s 随时保存,养成习惯
2、tab键:默认四个空格
3、注释:# 养成习惯,方便自己,方便他人
4、行连接符(代码太长需要分行时用):\
仅仅是分行用的,代码内容没有断
字符串的格式化
format()
填充与对齐
数字格式化
小数f 整数d
常用的查找方法
len
a.startswith('wo')是以wo开头的吗
a.endswith('wo')是以wo结尾的吗
a.find('wo')第一次出现wo的位置
a.rfind('wo')最后一次出现wo的位置
a.count('wo')wo出现了几次
a.isalnum()所有字符全是字母或数字 返回布尔值
去除首尾信息
strip()
大小写转换
a.capitalize()产生新的字符串,首字母大写
a.title()产生新的字符串,每个单词都首字母大写
a.upper()产生新的字符串,所有字符全转成大写
a.lower()产生新的字符串,所有字符全转成小写
a.swapcase()产生新的字符串,所有字母大小写转换
格式排版
center()、ljust()、rjust()
字符串驻留机制
字符串比较
==
!=
is
成员操作符
in
not in
split()分割 join()合并
a.split()把空格作为分隔符
a.split('be')把be最为分隔符
join()
a=['sxt','sxt100','sxt200']列表
'*'.join(a)
'sxt*sxt100*sxt200'
涉及到性能时一般用join(不生成新的对象)
append加元素
字符串切片slice操作
截取字符串
[:]提取整个字符串
[start:]从start-1开始直到最后
[:end]从头又开始直到end-1
包含开头不包含结尾
[start:end:step]
其他操作:
step=-1,从后往前反向提取
str()实现数字转型字符串
使用[]提取字符
replace实现字符串的替换
a=a.replace('c','gao')把c变成gao
转义字符
\续行符
\\反斜杠
\'单引号
\"双引号
\b退格
\n换行
\t横向制表符
\r回车
字符串的拼接
+
b=‘sxt''gaoqi’
形成新的对象
从控制台读取字符串
nyname=input‘请输入你的名字:’
请输入你的名字:
python的字符串是不可变的
字符串的编码:Unicode
ord()字符转换为数字
chr()数字转换为字符
多行 三个单引号
空格
len()查字符串chang'du
dim、keepdim
当我们指定维度之后返回的最大值和最小值,会自动消减一个维度,如果对一个二维数组取最大值之后,还想保持它的维度是两个,那么我们可以设置keepdim=True
统计属性
常见的统计属性:
norm——范数
注意:norm不等于normalize(正则化)
vector norm 不等同于 matrix norm
(1)第一范数
(2)第二范数
mean——均值
sum——求和
max——最大值
min——最小值
argmin——最小值的位置
argmax——最大值的位置
kthvalue——第几个的数值和位置
topk——top几的位置和数值
二维以上的tensor matul
matmu完成二维以上的矩阵相乘运算,但事实上,我们实际运算的也是最后两个维度的数值
近似值
floor()取小
ceil()取大
round()四舍五入
trunc()取整数
frac()取小数
裁剪——clamp
打印参数w的梯度:w.grad.norm(2)
torch里面的clamp类似于numpy里面的climp把数值范围进行裁剪
数学运算
(1)加减乘除
(2)矩阵相乘 matmul 是按照矩阵的方式相乘
·Torch.mm(只适用于二维矩阵,不建议使用)
·Torch.matmul
·@
一个案例
stack和cat的区别
cat在指定维度上可以值不同,但是stack在指定维度上的值必须相同
拼接和拆分
cat
从最小维度开始匹配,我们默认越高维度越相似,而小维度上各有各的不同
[32, 32]给每行每列加一个base基底;
[3, 1, 1]相等于是给每个通道都加个值;
[1, 1, 1, 1]像素点增加了一个值
why broadcasting
(1)本身有现实意义;
(2)可以节省内存消耗
什么情况下需要将broadcasting?
match from last dim!
·如果当前的dim=1,扩展相同的维度
·如果其他地方没有维度,可以添加这一个模块,然后扩展成相同维度
·否则,则不能进行传播
broadingcasting
(1)expand
(2)without copying data
key idea
同一运算符
is
is not
== 调用 __eq__()方法
整数缓存问题
布尔值
比较运算符
==
!=
>
<
逻辑运算符
or
and
not
短路现象
同一运算符