数值操作
*,**,/,//
* 代表乘法,向量对应位置相乘
** 代表乘方 eg. 2 ** 5=32
/ 除法
// 除法后取整
科学计数法,小数位数
round(1.234566778,2)
# 1.23
a = 100000000
print('%e' %a)
b = []
b.append('%e' %a)
# b: ['1.000000e+09']
数组操作
Pandas:DataFrame
- iloc:即index locate 用index索引进行定位,所以参数是整型,如:df.iloc[10:20, 3:5]
- loc,则可以使用column名和index名进行定位,如:
df.loc[‘image1’:‘image10’, ‘age’:‘score’]
获得两个数组间的交并补
- 交集
# 方法一:
aa=[1,2,4,5]
bb=[2,3,5,7,4,2]
inter = [t for t in aa if t in bb]
print(inter)
# [2, 4, 5]
# 方法二
print (list(set(aa).intersection(set(bb))))
- 并集
print (list(set(aa).union(set(bb))))
# [1, 2, 3, 4, 5, 7]
- 差集
print (list(set(bb).difference(set(aa)))) # bb中有而aa中没有的
# [3, 7]
print(list(set(aa).difference(set(bb))))
# [1]
画图相关
画图中文无法显示
#解决中文显示问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
画布尺寸
plt.figure(figsize=(14.4, 9))
图例位置
import matplotlib.pyplot as plt
import numpy as np
X=np.linspace(-np.pi,np.pi)
Y=np.cos(X)
Y1=np.sin(X)
#增加label
plt.plot(X,Y,label="Cos(X)")
plt.plot(X,Y1,label="Sin(X)")
#指定图例位置,1右上角,2左上角,3右下角,4左下角,0自动适应图像
plt.legend(loc=0)
plt.show()
# 也可以直接指定图例
plt.legend(['Cos(X)',"Sin(X)"], loc=2)
文件操作
很多时候涉及到对文件夹下所有文件的操作,如何拿到所有的文件名,得到所有的文件路径,是首要解决的问题。
以及在程序内对文件夹进行新建/删除
两种常用方法
- import os, shutil
- 创建文件夹
import os
os.mkdir('dir1')
os.mkdir('dir1/dir3')
# 一次只能生成一个文件夹
- 删除文件夹
# 1.删除单个空文件夹
os.rmdir('d1/d2')
# 2.删除多个非空文件夹,d2空则删除,并递归到上一级,若也为空则d1也被删除
os.removedirs('d1/d2')
# 3.删除文件夹中文件
os.remove('d1/a.txt')
# 似乎只能先一个个循环移除文件,然后删除空文件夹
# 另一种删除的方式,删除该文件夹里所有
import shutil
# 该库中还有很多实用函数,不一一介绍
shutil.rmtree('d1')
- 重命名文件夹
import os
import shutil
# os.rename("old_name", "newname")
os.rename('d1/a.txt', 'd1/b.txt')
shutil.move('d1/a.txt', 'd1/b.txt')
- 列出指定目录下的所有文件和子目录名称,以list格式打印
- 给出该目录下的文件和子目录名称
import os
path = os.listdir('d1')
print(path)
- 若还想递归子目录中的所有文件
import os
path = 'd1'
for dirpath, dirname, filenames in os.walk(path):
print(dirpath, dirname, filenames)
其中dirpath为目录的路径,dirname为该目录下子目录的名称,filenames为该目录下的所有文件名称。
- 获得一个路径下所有的文件路径名称:
import os
path = 'd1'
for dirpath, dirname, filenames in os.walk(path):
for filename in filenames:
print(os.path.join(dirpath,filename))
- 给出文件所在的绝对路径
import os
abspath = os.path.abspath('d1')
print(abspath)
- 获取当前工作目录,改变工作目录
import os
os.getcwd()
os.chdir('d1') # 相当于cd d1
- 多个文件路径组合
import os
path = os.listdir('d1')
[os.path.join('d1/', path[i]) for i in range(len(path))]
# ['d1/b.txt', 'd1/d2', 'd1/新建 Microsoft Excel 工作表.xlsx']
- import glob
- 在path路径下,查找与匹配规则匹配的所有文件
def findFiles(path): return glob.glob(path)
path = findFiles('Data/Test/*.npy')
# 找到给定路径下,后缀名为.npy的所有文件,返回为Data/Test/*.npy形式
匹配规则:
* : 匹配所所有
? : 匹配一个字符
*.* : 匹配如:[hello.txt,cat.xls,xxx234s.doc]
?.* : 匹配如:[1.txt,h.py]
?.gif: 匹配如:[x.gif,2.gif]
如果没有匹配的,glob.glob(path)将返回一个空的list:[]