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

  • 相关阅读:
    warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Windows10+CLion+OpenCV4.5.2开发环境搭建
    Android解决部分机型WebView播放视频全屏按钮灰色无法点击、点击全屏白屏无法播放等问题
    MediaCodec.configure Picture Width(1080) or Height(2163) invalid, should N*2
    tesseract
    Caer -- a friendly API wrapper for OpenCV
    Integrating OpenCV python tool into one SKlearn MNIST example for supporting prediction
    Integrating Hub with one sklearn mnist example
    What is WSGI (Web Server Gateway Interface)?
    Hub --- 机器学习燃料(数据)的仓库
  • 原文地址:https://www.cnblogs.com/567823a/p/12821806.html
Copyright © 2011-2022 走看看