Numpy and Matplotlib
Numpy介绍
一个用python实现的科学计算,包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。 NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。数据类型ndarray
编辑 NumPy provides an N-dimensional array type, the ndarray, which describes a collection of “items” of the same type. NumPy提供了一个 N维数组类型ndarray,它描述了 相同类型的“items”的集合。 ndarray到底跟原生python列表的区别:

- 中文名
- 绘图库
- 外文名
- Matplotlib
- 所属领域
- 计算机
- 作 用
- 绘图
- 元 素
- x轴和y轴


import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.family']='SimHei' matplotlib.rcParams['font.sans-serif']=['SimHei'] def Draw(pcolor,nt_point,nt_text,nt_size): plt.plot(x,y,'k',label="$exp_decay$",color=pcolor,\ linewidth=3,linestyle="-") plt.plot(x,z,"b--",label="$cos(x^2)$",linewidth=1) plt.xlabel('时间(s)') plt.ylabel('幅度(mV)') plt.title("阻尼衰减曲线绘制") plt.annotate('$cos(2\pi t)\exp(-t)$',xy=nt_point,\ xytext=nt_text,fontsize=nt_size,arrowprops=\ dict(arrowstyle='->',connectionstyle="arc3,rad=.1")) def Shadow(a, b): ix=(x>a)&(x<b) plt.fill_between(x,y,0,where=ix,facecolor='grey',alpha=0.25) plt.text(0.5*(a+b),0.2,r"$\int_a^b f(x)\mathrm{d}x$",\ horizontalalignment='center') def XY_Axis(x_start,x_end,y_start,y_end): plt.xlim(x_start,x_end) plt.ylim(y_start,y_end) plt.xticks([np.pi/3,2*np.pi/3,1*np.pi,4*np.pi/3,\ 5*np.pi/3],['$\pi/3$','$2\pi/3$','$\pi$','$4\pi/3$','$5\pi/3$']) x=np.linspace(0.0,6.0,100) y=np.cos(2*np.pi*x)*np.exp(-x)+0.8 z=0.5*np.cos(x**2)+0.8 note_point,note_text,note_size=(1,np.cos(2*np.pi)*\ np.exp(-1)+0.8),(1,1.4),14 fig=plt.figure(figsize=(8,6),facecolor='white') plt.subplot(111) Draw("red",note_point,note_text,note_size) XY_Axis(0,5,0,1.8) Shadow(0.8, 3) plt.legend() plt.savefig('sample.jpg') plt.show()
效果图
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。手绘风格
from PIL import Image import numpy as np im0=np.array(Image.open('D:\\故宫.jpg').convert("L")) im1=255-im0 im2=(100/255)*im0+150 im3=255*(im1/255)**2 pil_im=Image.fromarray(np.uint(im1)) pil_im.save('gugonggai.jpg') pil_im.show()
将im3改为:im3=255-255*(im1/255)**0.5+150

from PIL import Image import numpy as np vec_el=np.pi/2.2 vec_az=np.pi/4. depth=7. #颜色的深浅,建议不要写太大的值,因为会变得很丑 im=np.array(Image.open('D:\\故宫.jpg').convert("L")) a=np.asany array(im).astype('float') grad=np.gradient(a) grad_x,grad_y=grad grad_x=grad_x*depth/100. grad_y=grad_y*depth/100. dx=np.cos(vec_el)*np.cos(vec_az) dy=np.cos(vec_el)*np.cos(vec_az) dz=np.sin(vec_el) A=np.sqrt(grad_x**2+grad_y**2+1.) uni_x=grad_x/A uni_y=grad_y/A uni_z=1./A a2=255*(dx*uni_x+dy*uni_y+dz*uni_z) a2=a2.clip(0,255) im2=Image.fromarray(a2.astype('uint8')) im2.save('gugong3.jpg')

更多精彩