zoukankan      html  css  js  c++  java
  • 科学计算和可视化

    一.numpy库和matplotlib库的学习

      (1)numpy库介绍:科学计算包,支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成,并可与C++/Fortran语言无缝结合

          np.array([1,2,3])列表转换为数组;np.array((1,2,3))元组转换为数组; np.array(range(5))把range对象转换为数组;np.arange(8)类似于内置的range()函数

          np.linspace(0,10,11,endpoint = False)等差数组不包含终点

      (2)matplotlib库介绍:是Python编程语言及其数值数学扩展包 NumPy的可视化操作界面。它为利用通用的图形用户界面工具包,如Tkinter, wxPython, Qt或GTK+向应用程序嵌入式绘图提供了应用程序接口(API)。

    二.雷达图

    import matplotlib.pyplot as plt
    import numpy as np
    import matplotlib
    plt.rcParams['font.family']='SimHei'

    labels=np.array(['总成绩','单选','程序题','剩余用时','复写率'])
    nAttr=5
    data=np.array([9.5,9,10,6,9])
    angles=np.linspace(0,2*np.pi,nAttr,endpoint=False)
    data=np.concatenate((data,[data[0]]))
    angles=np.concatenate((angles,[angles[0]]))
    fig=plt.figure(facecolor='white')
    plt.subplot(111,polar=True)
    plt.plot(angles,data,'b*-',color='y',linewidth=3)
    plt.fill(angles,data,facecolor='g',alpha=0.25)
    plt.thetagrids(angles*180/np.pi,labels)
    plt.figtext(0.52,0.95,'python123的成绩表',ha='center')
    plt.grid(True)
    plt.savefig('scorce_radar.JPG')
    plt.show()

    三.自定义

    from PIL import Image
    import numpy as np
    im=np.array(Image.open('钟楼2.jpg'))
    print(im.shape,im.dtype)
    im=np.array(Image.open('钟楼2.jpg').convert('L'))
    print(im.shape,im.dtype)
    print(im[20,300])
    print(int(im.min()),int(im.max()))
    print(im[10,:])
    im0=np.array(Image.open('钟楼2.jpg').convert('L'))
    im1=255-im0
    im2=(100/255)*im0+150
    im3=255*(im1/255)**2
    pil_im=Image.fromarray(np.uint(im3))
    pil_im.show()
    vec_el=np.pi/2.2
    vec_az=np.pi/4
    depth=10
    im=Image.open('钟楼2.jpg').convert('L')
    a=np.asarray(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.ain(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('钟楼.jpg')

    效果2

    效果3

    效果4

  • 相关阅读:
    MySQL索引原理及慢查询优化
    MySQL单表百万数据记录分页性能优化
    linux下crontab命令的使用
    php递归读取目录
    php实现函数重载
    php数组常见的几种遍历方法
    ArtTemplate 使用笔记
    打算换工作的伙伴们,快来看啦,各种职位,随便挑咯...
    看看国外的javascript题目,你能全部做对吗?(分享)
    逛园子,看到个练习题,小试了一把(淘宝ued的两道小题)
  • 原文地址:https://www.cnblogs.com/567823a/p/12821806.html
Copyright © 2011-2022 走看看