numpy 是 对数据的处理计算等 matplatlib 是数据可视化显示 PIL主要针对图像进行处理
我只说每个的 一小部分 常用
numpy:
import numpy as np
#numpyy数据存储 数据读取
a=np.arange(100).reshape(5,20)
np.savetxt('a.csv',a,fmt='%.1f',delimiter=',')#存储
b=np.loadtxt('a.csv',delimiter=',')#读取
a1=np.arange(100).reshape(5,10,2)
a1.tofile("c.dat",format='%d')#任意维度的数据 a.tofile(frame,sep='',format='%s')
b1=np.fromfile("c.dat",dtype=np.int,count=-1,sep=',')#从二进制文件中读取数据 但是需要事先知道数据的类型及维度
#save load np.save(fname,array) np.savez(frame,array)
d=np.arange(100).reshape(20,5)
np.save('d1.npy',a)
d1=np.load('d1.npy')
print(d1)
#numpy 的随机数函数 random np.random.*
#np.random.rand 均匀分布 随机浮点数 0-1之间
#np.random.randn(d0,d1....dn) 正态分布d0-dn之间
#np.random.ranint(low[,high,shape]) 根据shape 创建随机整数或随机整数数组 low-high
#np.randon.seed(s) 随机种子数 s是给定的种子数
e=np.random.randn(100)
#numpy 的统计函数
f=np.arange(100).reshape(20,5)
k=np.sum(f,axis=0)#对每一列 求和 axis=2 表示 每一行求和
k1=np.average(a,axis=0,weights=[5,2,3,4,6])#运行一次体验一下average的作用
#梯度函数 gradient 即斜率 a b c b的梯度值(c-a)/2
主要就是存取及计算 随机函数 梯度函数的使用
当然存取还可以使用pandas 这里先不说
matplotlib:
import numpy as np
import matplotlib.pyplot as plt
plt.subplot(211)
plt.plot([1,2,3,4],[0,6,2,4])
plt.ylabel('Grade')
#plt中的中文显示 两种方法 rcParams
plt.rcParams['font.sans-serif']=['SimHei'] #font.style 正常normal 斜体italic font.size 字体大小 largex-small
plt.xlabel('横轴值')
plt.savefig('test',dpi=600)#保存图片 默认png 但是 现在python3.2就已经可以直接保存按钮就可以 之后可以再用illustrator编辑优化什么的
#plt中的中文显示 两种方法 rcParams
#第二种方法 添加属性fontproperties
#plt.xlabel('横轴值',fontproperties='SimHei',fontsize=20)
plt.subplot(212)#将绘图区域细分 为2行1列
a=np.arange(10)
plt.plot(a,a*1.5,a*2.5,a*3,a*2,a*5)#画3条曲线 注意 前后各为 x,y
#也可以加颜色 级风格字符 比如':' 表示虚线绘制系统也会自动赋颜色
plt.show()
PIL
from PIL import Image
#image 是PIL中的基础图像函数 R G B
import numpy as np
a=np.array(Image.open('D:/gonqingtuan.jpg').convert("L"))
#读图像 转为rgb 获取图像信息 主要是 数组信息
print(a.shape,a.dtype)
b=255-a
a=Image.fromarray(b.astype('uint8'))
a.save("D:/gonqingtuan1.jpg")