note:
train_loader = data.DataLoader(dataset=train_dataset,batch_size=batch_size,shuffle=True)
label_loader = data.DataLoader(dataset=train_labelset,batch_size=batch_size,shuffle=True)
for i, loader in enumerate(zip(train_loader, label_loader)):
(trace, label) = loader
list | array | np.ndarray | tensor |
---|---|---|---|
互转:
import numpy as np
list | ndarray | tensor | pytorch dataloader | |
---|---|---|---|---|
list | array 和asarray都可以,区别是前者默认copy,后者相反 array = np.asarray(list) array = np.asarray(list, dtype = int) # 除int数据外全部忽略 |
|||
np.ndarray | https://blog.csdn.net/weixin_43883815/article/details/122797136 | |||
tensor | ||||
pytorch dataloader | ||||
1. 直接赋值
n = [1,2,3,4]
2. 规律数字赋值
list1 = [n for n in range(1,6)] # [1, 2, 3, 4, 5]
3.值相同
list2 = ['a' for n in range(4)] # ['a', 'a', 'a', 'a']
方法二
list3 = ['b'] * 4 # ['b', 'b', 'b', 'b']
list4 = [3] * 4 # [3, 3, 3, 3]
https://www.php.cn/python-tutorials-419933.html
1.append() 向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加
2.extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加
3.+ 直接用+号看上去与用extend()一样的效果,但是实际上是生成了一个新的列表存这两个列表的和,只能用在两个列表相加上
4.+= 效果与extend()一样,向原列表追加一个新元素,在原有列表上增加
代码示例如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y0LfmtUG-1688613895441)(./note.assets\1659086604251.png)]
先把list转numpy,再使用shape属性
import numpy as np
list = [[1,2],
[3,4],
[5,6]]
dimen = np.array(list).shape
print(dimen)
# (3, 2)
1. 最简单的sort,默认升序
x=[8,9,0,7,4,5,1,2,3,6]
x.sort()
>>> x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2.使用lambda表达式
L=[('b',2),('a',1),('c',3),('d',4)]
sorted(L, key=lambda x:x[1])
>>> L = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
3.使用函数
x=[8,9,0,7,4,5,1,2,3,6]
def size(a):
x=10-int(a)
return x
x.sort(key=size)
>>> x = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
更多用法详见
https://blog.csdn.net/qq_41500249/article/details/106244810
https://blog.csdn.net/qq_20831401/article/details/121663509
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bPSzAXfA-1688613895446)(./note.assets\image-20220701173510902.png)]
https://blog.csdn.net/wohu1104/article/details/107283011
方法一:
l = [1,2,3]
t = torch.tensor(l)
其他方法见链接
tensor转list
data = data.tolist()
u1、u4……
详见 https://www.numpy.org.cn/reference/arrays/dtypes.html#%E6%8C%87%E5%AE%9A%E5%92%8C%E6%9E%84%E9%80%A0%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ehjQqF0z-1688613895447)(.\note.assets\1660126410880.png)]
array 和 np.ndarray 的区别:
array 是一个函数,创造类型为 ndarray 的矩阵对象
先看转之前的元素类型,保证转成array之后数据不会被改变。 错误情况如 https://blog.csdn.net/good18Levin/article/details/121285416
和 np.asarray()的区别
np.array
(默认情况下)将会copy该对象,而 np.asarray
除非必要,否则不会copy该对象
ndarray 转 pytorch dataloader https://blog.csdn.net/weixin_43883815/article/details/122797136
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mfec7vyQ-1688613895448)(./note.assets/image-20220712174911269.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4hVg7IlH-1688613895449)(./note.assets/image-20220712175308517.png)]
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
np.sum(a, axis=0)
# 结果
# array([5, 7, 9])
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s1F8rTZO-1688613895451)(D:\compilers\language\python.assets\1688009666035.png)]
print(context, end="")
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k2inJtCA-1688613895452)(D:\compilers\language\python.assets\1612946030865.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L8aZEisa-1688613895453)(D:\compilers\language\python.assets\1612946039570.png)]
https://www.runoob.com/python3/python3-string.html
替换
需要新建变量保存修改后的内容[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lH0LXgov-1688613895454)(D:\compilers\language\python.assets\1612949417624.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BF4KvWGC-1688613895455)(D:\compilers\language\python.assets\1612949422975.png)]
包含 :if 'sdfkj' in strName
open(),close()
参数说明:https://blog.csdn.net/weixin_39556474/article/details/110566622
参数Mode的基本取值
r、w、a为打开文件的基本模式,对应着只读、只写、追加模式;
b、t、+、U这四个字符,与以上的文件打开模式组合使用
二进制模式,文本模式,读写模式、通用换行符,根据实际情况组合使用、
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WN7f9iDE-1688613895456)(D:\compilers\language\python.assets\1612946403093.png)]
第一种,见另一个md
第二种:
# 如果没有安装pandas,只需取消对以下行的注释来安装pandas
# !pip install pandas
import pandas as pd
data = pd.read_csv("data_file_path")
print(data)
readline(): 函数运行后,对该文件的指针会移动到文件尾部,所以如果还想再读,需要移动文件指针
输出到文件
1. 方法同写文件
file = open("./test.txt","w")
content = 'www.xilhkjghfgddfeniao.com'
file.write(content)
file.close()
2. help函数输出到文件
import reed_solomon_ccsds # reed_solomon_ccsds为想看的库,需更改
import sys
file = open("./test.txt","w+")
stdout = sys.stdout
sys.stdout = file
help(reed_solomon_ccsds) # 同上
file.flush()
file.close()
sys.stdout = stdout
function | illustration | else |
---|---|---|
reshape | 地址不变 b=a.reshape((3,4)) 改变b或a,另一个的值也会随之改变 | |
view | view 和 reshape没有本质区别 | |
.shape | 查看维数 | |
type() | ||
bin (n).count (“1”) | 计算汉明重量 | 汉明重量:二进制中1的个数 |
源自 https://blog.csdn.net/weixin_39583029/article/details/110684070,由于代码部分较难辨别,故于此处修改,文字部分复制,代码部分修改格式以便阅读
在设置默认参数时,默认参数必须指向不变对象。
如果是可变对象,比如list,举例如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-baLuRwKt-1688613895457)(.\note.assets\1660122937944.png)]
四、非关键字可变长参数
非关键字可变长参数用 *变量名 来表示,定义函数时,一般用 *args 来表示。主要用来处理一些不能确定有多少个参数的问题。
函数将多余的不带关键字的参数打包成为一个元组,进行处理。*args后面的参数必须使用关键字,不然全都会被当成可变长参数,被打包到元组中。
但是,*args与默认参数之间顺序的问题也需要注意。
def s(x,y=233,*args):
print('x =',x)
print('y =',y)
for index,i in enumerate(args):
print('args[%s] = %s'%(index,i))
print(type(args))
s(1,2,3,4,5)
输出:
x = 1
y = 2
args[0] = 3
args[1] = 4
args[2] = 5
可以看到,该函数第一个值赋给位置参数,第二个值赋给默认参数,后面的值全都打包成为一个元组,通过for循环来显示。只要传递的参数传递的参数大于两个,就会自动给默认参数赋值,此时默认参数基本上失去了默认的意义。
也可以将默认参数放在*args的后面,但是此时给默认参数赋值时,需要加上关键字,不然就会被打包为元组,赋值给args。
def s(x,*args,y=233):
print('x =',x)
print('y =',y)
for index,i in enumerate(args):
print('args[%s] = %s'%(index,i))
print(s(1,2,3,4,5))
print(s(1,2,3,4,y=5))
输出:
x = 1 x = 1
y = 233 y = 5
args[0] = 2 args[0] = 2
args[1] = 3 args[1] = 3
args[2] = 4 args[2] = 4
args[3] = 5 None
None
列表或元组可以以作为参数传入*args,如果不想被二次打包,需要在列表或者元组前面加 * 。
def s(x,*args,y=233):
print('x =',x)
print('y =',y)
for index,i in enumerate(args):
print('args[%s] = %s'%(index,i))
s(1,2,*[4,5,6])
输出:
x = 1
y = 233
args[0] = 2
args[1] = 4
args[2] = 5
args[3] = 6
五、可变长的关键字参数
可变长关键字参数用 **变量名 来表示,定义函数时,一般用 **kwargs 来表示。主要用来处理一些不能确定有多少个关键字参数的问题。
函数将多余的带关键字的参数打包成为一个字典,关键字为字典的key,进行处理。**kwargs必须是放在函数形参的最后。
def s(x,*args,y=233,**kwargs):
print('x =',x)
print('y =',y)
for index,i in enumerate(args):
print('args[%s] = %s'%(index,i))
for i in kwargs:
print(i,' ',kwargs[i])
print('kwargs type is',type(kwargs))
s(1,2,a=3,b=4)
输出结果:
x = 1
y = 233
args[0] = 2
a 3
b 4
kwargs type is
同样,字典也可以作为参数传入**kwargs,需要在字典前加 **
可以对比下列代码的执行结果:
def s(x,*args,y=233,**kwargs):
print('x =',x)
print('y =',y)
for index,i in enumerate(args):
print('args[%s] = %s'%(index,i))
for i in kwargs:
print(i,' ',kwargs[i])
s(1,2,{'a':5})
s(1,2,a={'a':5})
s(1,2,**{'a':5})
输出:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PqLa6Tsb-1688613895457)(.\note.assets\1660125423431.png)]
import torch
save_torch = torch.Tensor([[1, 2, 3, 4],
[2, 34, 5, 6]])
print(save_torch)
torch.save(save_torch, 'test_save_tensor.pt') # 保存
load_torch = torch.load('test_save_tensor.pt') # 读取
print(load_torch)
https://blog.csdn.net/weixin_42642296/article/details/115861092
安装qt5,不安装会报错 ImportError: Failed to import any qt binding
pip install PyQt5
pip install PyQt5-tools //这个看情况,不下也能用的话就不下
在代码中加入一行%matplotlib qt5
import matplotlib.pyplot as plt
import numpy as np
%matplotlib qt5
a = np.random.randn(2,3)
plt.plot(a)
plt.show()
结果:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wIrdGRUr-1688613895459)(./python.assets/image-20220627180134926.png)]
Integrated Terminal in Visual Studio Code
必备软件: PdgCntEditor 下载地址: https://www.jianshu.com/p/9683e7094871
有了会更好的: 编写python的软件
操作步骤先跟这个网站:https://www.jianshu.com/p/9683e7094871
需要注意的一点是,如果没有获取到书签源数据,可以用文字识别技术,比如QQ的截图-文字识别,来获取,只不过需要自己进行手动修正。
上述网站步骤操作结束后,需要进行如下步骤:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0VYtJBYu-1688613895460)(D:/compilers/language/note.assets/1659086464625.png)]
保存后关闭该程序,打开pdf,即可看到生成的目录书签。
下载命令为:git clone url
下载部分文件夹时,将url中的分支替换成trunk。例如:
https:// github. com/shanfl/collectcode/tree/3b09c/jpeg(链接加了左右空格,防止智能识别链接。下同)
将”/tree/3b09c/”替换成”/trunk/”,则新生成的新链接为:https:// github .com/shanfl/collectcode/trunk/jpeg
注意:这里根据分支的不同,通用的办法是将”/branches/branchname/”替换成”/trunk/”。例如:”/tree/master/” to “/trunk/” ; “/tree/develop/” to “trunck”
详见 https://blog.csdn.net/qq_35860352/article/details/80313078
https://blog.csdn.net/wjx19960817/article/details/113740694
文档中第一点的补充:CTRL + 鼠标左键点进去之后如果类似下图,可以继续使用CTRL + 鼠标左键点进去[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sNvV3G45-1688613895461)(D:\compilers\language\python.assets\1688132304986.png)]
https://www.python100.com/html/HT0B3Z47O82J.html
yield 关键字 https://blog.csdn.net/mieleizhi0522/article/details/82142856/
pip show 库名(如opencv-python) 查看安装的库的版本
python -m ensurepip 查看pip版本
pip list 查看安装的各种与python有关的包的版本
python -m pip install --upgrade pip 更新pip
使用pip命令时提示没有pip模块可使用如下命令
2.1 python - m ensurepip 查看pip版本
2.2 python -m pip install --upgrade pip --force-reinstall(使用时无效,故仅作参考)
pip install 包名==版本号
//例如
pip install cmake==1.5
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f2IU3WLI-1688613895461)(D:\compilers\language\python.assets\1655086799518.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qW1a8QGF-1688613895462)(D:\compilers\language\python.assets\1655087209204.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wuIpLmRD-1688613895463)(D:\compilers\language\python.assets\1655087339872.png)]
用pycharm安装
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cXPgdvcE-1688613895464)(D:\compilers\language\python.assets\1655087593020.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ziomifKF-1688613895464)(D:\compilers\language\python.assets\1655087720936.png)]
若失败,可尝试打开cmd自己输入代码运行
leetcode自定义类型,其定义可仿照下面链接进行自定义。
https://leetcode.cn/circle/article/s3RcOW/
https://blog.csdn.net/lesliezc/article/details/119189966