【Python】知识点零碎学习3

defaultdict

defaultdict(list),会构建一个默认value为list的字典;

该值将用作字典中不存在的键的默认值

python 复制代码
d = defaultdict(list)  # 如果 key 不在字典中,则自动插入一个空列表
for s in strs:
   sorted_s = ''.join(sorted(s))  # 把 s 排序,作为哈希表的 key
   d[sorted_s].append(s)  # 排序后相同的字符串分到同一组
return list(d.values())  # 哈希表的 value 保存分组后的结果

combinations

全组合函数combinations(iterable, r):返回iterable中所有长度为r的子序列,返回的子序列中的项按输入iterable中的顺序排序。

python 复制代码
from itertools import combinations
a=[1,2,3]
list(combinations(a,2))#[(1,2),(1,3),(2,3)]

torch.full

torch.full(size,full_value):生成一个size大小的,每一个值都是full_value的张量

python 复制代码
torch.full((2, 3), 3.141592)

#tensor([[ 3.1416,  3.1416,  3.1416],
#        [ 3.1416,  3.1416,  3.1416]])

torch.mean

torch.mean(input):返回input中所有元素的平均值;input要求浮点型或者复数型

torch.mean(input, dim, keep_dim=False):

dim:在dim这个维度上返回input的平均值;如果dim是一个列表,要求所有这些维度进行规约。

keep_dim默认为False,此时输出张量维度减少len(dim)个;当为True时,输出张量大小与input相同,在dim的维度上为1。

python 复制代码
a = torch.randn(4, 4)
#tensor([[-0.3841,  0.6320,  0.4254, -0.7384],
#        [-0.9644,  1.0131, -0.6549, -1.4279],
#        [-0.2951, -1.3350, -0.7694,  0.5600],
#        [ 1.0842, -0.9580,  0.3623,  0.2343]])
torch.mean(a, 1)
#tensor([-0.0163, -0.5085, -0.4599,  0.1807])
torch.mean(a, 1, True)
#tensor([[-0.0163],
#        [-0.5085],
#        [-0.4599],
#        [ 0.1807]])

rearrange

rearrange(input, pattern: str, **axes_lengths):重排张量维度,进行维度变换

input:输入张量

pattern:调整规则

axes_lengths:附加的尺寸规格

python 复制代码
images = torch.randn((32,30,40,3))

print(rearrange(images, 'b h w c -> h (b w) c').shape)# (30, 1280, 3)

print(rearrange(images, 'b (h h1) (w w1) c -> (b h1 w1) h w c', h1=2, w1=2).shape)# (128, 15, 20, 3)

torch.clamp

torch,clamp(input, min, max):将input中的元素都限制在[min,max]之间;若min为none,则没有下界;若max为none,则没有上界。

即y=min(max, max(input,min))

python 复制代码
a = torch.randn(4)
#tensor([-1.7120,  0.1734, -0.0478, -0.0922])
torch.clamp(a, min=-0.5, max=0.5)
#tensor([-0.5000,  0.1734, -0.0478, -0.0922])

相关推荐
好奇龙猫2 小时前
【AI学习-comfyUI学习-第三十节-第三十一节-FLUX-SD放大工作流+FLUX图生图工作流-各个部分学习】
人工智能·学习
Boilermaker19922 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
沈浩(种子思维作者)2 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
saoys2 小时前
Opencv 学习笔记:图像掩膜操作(精准提取指定区域像素)
笔记·opencv·学习
MM_MS3 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
꧁Q༒ོγ꧂3 小时前
LaTeX 语法入门指南
开发语言·latex
njsgcs3 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_993 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
io_T_T3 小时前
迭代器 iteration、iter 与 多线程 concurrent 交叉实践(详细)
python
古城小栈4 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust