命令行
pip使用镜像
临时使用镜像
# 使用清华大学镜像下载numpy
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
永久使用镜像
# 永久使用清华大学镜像下载包
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
常见国内镜像源
清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/
百度源:https://mirror.baidu.com/pypi/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/
华中科技大学:http://pypi.hustunique.com/
豆瓣源:http://pypi.douban.com/simple/
腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/
内置函数
同时遍历多个列表
a = [1, 2, 3]
b = [4, 5, 6]
for i, j in zip(a, b):
print(a, b)
np
打乱数据集的方法
同一随机种子法
seed = 116 # using same seed in order to data match label
np.random.seed(seed)
np.random.shuffle(data)
np.random.seed(seed)
np.random.shuffle(label)
同一索引号法
index = np.arange(len(x_data))
np.random.shuffle(index)
data = data[index]
label = label[index]
增加数据维度
方法一
x = np.expand_dims(x, axis=-1) # 在最低维增加维度
方法二
x = x.reshape(x.shape+(1,)) # 在最低维增加维度
方法三
x = x[:, :, np.newaxis] ## 在最低维增加维度,有几维写几个:
保存数组
单个数组
np.save('test.npy', np.arange(10))
print(np.load('test.npy'))
多个数组
np.savez('test.npz', haha=np.arange(5), hehe=np.arange(10))
x = np.load('test.npz')
print(x['haha'])
print(x['hehe'])
PIL
图片拼接
横向拼接
a = Image.new(mode='RGB', size=(32, 32), color=(255, 0, 0))
b = Image.new(mode='RGB', size=(32, 32), color=(0, 255, 0))
c = Image.new(mode='RGB', size=(74, 32), color=(255, 255, 255))
c.paste(im=a, box=(0, 0))
c.paste(im=b, box=(42, 0))
c.show()
纵向拼接
a = Image.new(mode='RGB', size=(32, 32), color=(255, 0, 0))
b = Image.new(mode='RGB', size=(32, 32), color=(0, 255, 0))
c = Image.new(mode='RGB', size=(32, 74), color=(255, 255, 255))
c.paste(im=a, box=(0, 0))
c.paste(im=b, box=(0, 42))
c.show()
图片融合
a = Image.new(mode='RGB', size=(32, 32), color=(255, 0, 0))
b = Image.new(mode='RGB', size=(32, 32), color=(0, 255, 0))
c = Image.blend(im1=a, im2=b, alpha=.5)
c.show()
类
私有化
Python 3.8 不支持类成员的私有化,但类成员的命名延续了C++的命名规则,因此可根据命名规则对其加以区分。
_protected = 'Protected attribulte' # 开头单下划线的属性或方法是受保护的成员
__private = 'Private attribute' # 开头双下划线的属性或方法是私有成员
__init__() ## 前后双下划线的方法是系统定义的