博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
科学计算和可视化
阅读量:7238 次
发布时间:2019-06-29

本文共 2806 字,大约阅读时间需要 9 分钟。

 

 

一、Numpy

        NumPy(Numeric Python)系统是 Python 的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比 Python 自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。据说 NumPy 将 Python 相当于变成一种免费的更强大的 MatLab 系统。

numpy 特性:开源,数据计算扩展,ndarray, 具有多维操作, 数矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。

特点:运算速度快、消耗资源少。

默认使用 Anaconda 集成包环境开发。

1、numpy 属性

几种 numpy 的属性:

  • ndim:维度

  • shape:行数和列数

  • size:元素个数

使用 numpy 首先要导入模块

 1 import numpy as np #为了方便使用numpy 采用np简写 

列表转化为矩阵:

array = np.array([[1,2,3],[2,3,4]])  #列表转化为矩阵print(array)"""array([[1, 2, 3],      [2, 3, 4]])"""

numpy 的几种属性:

print('number of dim:',array.ndim)  # 维度# number of dim: 2print('shape :',array.shape)    # 行数和列数# shape : (2, 3)print('size:',array.size)   # 元素个数# size: 6

2、Numpy 的创建 array

关键字

  • array:创建数组

  • dtype:指定数据类型

  • zeros:创建数据全为0

  • ones:创建数据全为1

  • empty:创建数据接近0

  • arrange:按指定范围创建数据

  • linspace:创建线段

二、Matplotlib

         Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

 matplotlib.pyplot 模块可以画折线图,分为两个步骤,分别是 pyplot.plot() 和 pyplot.show() ,前者负责画图,后者将画好的图展示出来。

基本使用:

import numpy as npimport matplotlib.pyplot as pltx=np.linspace(0,6,100)y=np.cos(2*np.pi*x)*np.exp(-x)+0.8plt.plot(x,y,'k',color='r',linewidth=3,linestyle="-")plt.show()

效果如图:

 

三、雷达图绘制

代码如下:

import numpy as npimport matplotlib.pyplot as pltimport matplotlibmatplotlib.rcParams['font.family']='YouYuan'matplotlib.rcParams['font.sans-serif']=['YouYuan']labels=np.array(['第一周','第二周','第三周','第四周','第五周','第六周'])nAttr=6data=np.array([100,100,96.7,100,110,70])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,'bo-',color='red',linewidth=2)plt.fill(angles,data,facecolor='orange',alpha=0.25)plt.thetagrids(angles*180/np.pi,labels)plt.figtext(0.5,0.95,'12号Regan_White_Lin的成绩表',ha='center')plt.grid(True)plt.savefig('pic.JPG')plt.show()

效果图如下:

 

四.散点图绘画

# -*- coding: utf-8 -*-import numpy as npimport matplotlib.pyplot as pltif __name__ == '__main__':    print ("--------------散点图--------------")    x = np.arange(50)    print ("x")    y = x + 5* np.random.rand(50)    plt.scatter(x, y)    plt.show()

运行结果:

五.自定义手绘风

 
from PIL import Image
import numpy as np
 
#为了便于文件的导入,可以使用相对路径,将文件和程序放在同一个文件夹下
 
vec_el=np.pi/2.2
vec_az=np.pi/4.
depth=10.
im=Image.open("HIT2.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.sin(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('hit2-SH.jpg')
ils/82344288
 

原图:

手绘效果图:

 

转载于:https://www.cnblogs.com/czd1/p/10759156.html

你可能感兴趣的文章
Linux/unix主机环回地址的一些功用
查看>>
Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台的用户界面
查看>>
Hyper-v虚拟化平台VDI 部署参考v1.0版
查看>>
内存中OLTP与内存不足
查看>>
Xshell5最新版激活
查看>>
实战Centos系统部署Codis集群服务
查看>>
ArcGIS Engine 线段绘制
查看>>
Perl重命名当前目录下的文件
查看>>
Struts+DAO+Hibernate搭建完成!(源码)
查看>>
WPF 附加属性
查看>>
【原创】.NET读写Excel工具Spire.Xls使用(2)Excel文件的控制
查看>>
arm-linux-gcc/ld/objcopy/objdump参数总结【转】
查看>>
20款Web开发者必备的jQuery插件,超赞!
查看>>
fedora live usb创建时的问题
查看>>
MFC 常用控件
查看>>
iOS开发-照片选择
查看>>
Java刷题知识点之泛型概念的提出、什么是泛型、泛型在集合中的应用、泛型类、泛型方法、泛型接口、泛型限定上限、泛型限定下限、 什么时候使用上限?泛型限定通配符的体现...
查看>>
android ANR
查看>>
DotNetNuke中Membership Provider机制
查看>>
银狐云服务架构V0.1
查看>>