python学习【持续更新】


python、pytorch

请添加图片描述
python多版本共存时,系统变量path中靠前的为默认版本。
Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。
请添加图片描述

1、pycharm中python交互模式
(1)cpython:>>>提示符
安装:conda install ipython
(2)ipython:ln[ ]提示符
如何切换?(soft-wrap)
2、命令行
函数:dir(),help()
windows路径名:\转义或r" 路径"
3、Dataset
Dataset是一个抽象类,提供一种方式获取数据及标签,来表示我们的数据集;通过将数据包装为Dataset类,然后传入Dataloader中。
1)len:返回数据集大小。
2)getitem:可以通过下标的方式 dataset[i] 的来取得第 i个数据。
4、Dataloader
Dataloader为网络提供不同的数据形式;常用操作有:batch_size, shuffle, num_workers(加载数据的时候使用几个子进程)
返回的是 Tensor 类型的数据

#分batch
list=[1,2,3,4,5,6,7,8,9,10,11]
batch=3
total_batch=len(list)/batch
if len(list)%batch!=0:
    total_batch=int(total_batch+1)
else:
    total_batch=int(total_batch)
for i in range(total_batch):
    data=list[i*batch:(i+1)*batch]
    print(data)
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[10, 11]

5、pack_padded_sequence
6、pad_packed_sequence
把输入序列填充PAD到一样的长度,进行pack_padded_sequence ,然后再pad_packed_sequence。–方便RNN等模型训练。先填充pad,获得每个batch,然后在pack压紧,输入到模型中。
7、TensorBoard
相当于开启了一个本地服务器
可视化工具,可以查看神经网络各层的模型结构。
8、python
axis=0第一个维度(行)
axis=1第二个维度(列)
9、一个元素张量可以用x.item()得到元素值

import torch
x = torch.randn(3,2)
print(x)
print(x[2,1])
print(x[2,1].item())
tensor([[-0.2892, -0.0541],
        [-1.5215, -0.8884],
        [ 0.5422, -0.7643]])
tensor(-0.7643)
-0.7642977833747864

10、张量
ndim 表示张量的维度,一维张量的 ndim 值为 1,二维张量的 ndim 值为 2。
shape 表示张量的形状,它的值是一个列表,列表元素个数与张量的维度相等,每一个元素值表示张量在此维度的元素个数。
对于一个张量,它有三个维度,shape = 2× 2 × 2 ,这表示此张量有两个二维张量,每个二维张量中有两个一维张量,每个一维张量中有两个元素。
由于行向量和列向量都是向量,而向量在 PyTorch 中被抽象为一维张量,因此在 PyTorch 中不区分行向量和列向量,一律都是一维张量。

tensor = torch.randn(2, 2, 2)
print(tensor)
print(tensor.ndim)
print(tensor.shape)
tensor([[[ 0.0925, -1.4159],
         [-0.6464,  0.5947]],

        [[-1.3368, -0.2398],
         [-0.1219, -0.5241]]])
3
torch.Size([2, 2, 2])

11、指本地目录的文件路径, windows下是\,linux和unix下是/。
在路径字符串前加 r,把转义字符 \ 变成普通字符。
绝对路径,用反斜杠
相对路径 ,用正斜杠 /
*通配符
12、可变参数
定义函数时,有时候我们不确定调用的时候会传递多少个参数。可用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递。

#未命名变参   * ,解包
def func(*args):
    print(type(args))  # 传入的参数会被视作一个元组
    print(args)
    for x in args:
        print(x)
func(1)
func(1, 2, 3)
# <class 'tuple'>
# (1,)
# 1
# <class 'tuple'>
# (1, 2, 3)
# 1
# 2
# 3
#命名变参  **
def func(**kwargs):
    print(type(kwargs))
    print(kwargs)
    for k, v in kwargs.items():
        print(k, ": ", v)

func(a=1)
func(a=1, b=2, c=3)
# <class 'dict'>
# {'a': 1}
# a :  1
# <class 'dict'>
# {'a': 1, 'b': 2, 'c': 3}
# a :  1
# b :  2
# c :  3

位置参数 --> 默认参数 --> 包裹位置参数 --> 包裹关键字(定义和调用都要遵循)

调试

No module …
1 没导入库
2 python版本不共存
3 导的包中的包报错,可能库版本不匹配

基本语法

tuple:添加元素时为a+=(1,),直接加a+=(1)不对,(1)为整型int
print(type(1,))

#dict
dict={"a":1,"b":3,"c":5}
for i in dict:
    print(i,dict[i])
for i in dict.items():
    print(i[0])
    print(i[1])

r=sorted(dict.items(),key=lambda i:i[0],reverse=True)
print(r)

a 1
b 3
c 5
a
1
b
3
c
5
[('c', 5), ('b', 3), ('a', 1)]

对于逻辑判断,bool类型非零即真。

dict:字典
get() 函数返回指定键的值,如果值不在字典中返回默认值。

numpy

import numpy as np
a=np.array([[1,2,3],[4,5,6]])
a[0,1]=2

在这里插入图片描述

pandas

请添加图片描述

matplotlib画图

import matplotlib.pyplot as plt
#中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
#保存高清图片
#bbox_inches='tight'表示指定将图表多余的空白区域裁减掉
plt.savefig('实体个数.jpg',dpi=300)#指定像素

如果plt.show() 在plt.savefig()前,就会导致保存图片是空白的情况。

ps:
py文件-右键open in terminal
导包alt+enter+shift
self–相当于指定类里的一个全局变量
整体缩进 tab
取消整体缩进 shift+tab
替换ctrl+r

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值