numpy 与 matplotlib 的应用

一、库函数介绍

1. numpy库

  NumPy(Numeric Python)提供了一个N维的数组类型ndarray,Numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,效率远高于纯Python代码。

  ndarray到底跟原生python列表的区别:

  ndarray中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以ndarray在存储元素时内存可以连续,而python原生list就只能通过寻址方式找到下一个元素,这虽然也导致了在通用性能方面Numpy的ndarray不及Python原生list,但在科学计算中,Numpy的ndarray就可以省掉很多循环语句,代码使用方面比Python原生list简单的多。

2. matplotlib库

  matplotlib 是一个 Python 的 2D绘图库,也是Python编程语言及其数值数学扩展包 NumPy的可视化操作界面。它利用通用的图形用户界面工具包,如Tkinter, wxPython, Qt或GTK+向应用程序嵌入式绘图提供了应用程序接口(API)。此外,matplotlib还有一个基于图像处理库(如开放图形库OpenGL)的pylab接口,其设计与MATLAB非常类似--尽管并不怎么好用。SciPy就是用matplotlib进行图形绘制。

二、应用A

1. 介绍:对python123作业的成绩通过画图显示

2. 代码实现:

 1 # -*- coding:utf-8 -*-
 2 ‘‘‘ 成绩雷达图 ‘‘‘
 3 import numpy as np
 4 import matplotlib.pyplot as plt
 5 plt.rcParams[‘font.family‘] = ‘SimHei‘        # 设置字体
 6 plt.rcParams[‘font.sans-serif‘] = [‘SimHei‘]  # 设置字体
 7
 8 labels = np.array([‘第一周‘,‘第二周‘,‘第三周‘,‘第四周‘,‘第五周‘,‘第六周‘]) # 设置标签
 9 datas = np.array([8, 10, 9, 10, 11, 7])       # 设置数据
10 angles = np.linspace(0, 2*np.pi, 6, endpoint = False) # 设置角度
11 datas = np.concatenate((datas, [datas[0]]))
12 angles = np.concatenate((angles, [angles[0]]))
13 fig = plt.figure(facecolor = ‘white‘)         # 创建绘图区域
14 plt.subplot(111, polar = True)                # 极坐标
15 plt.plot(angles, datas, ‘bo-‘, color = ‘g‘, linewidth = 1) # 画图
16 plt.fill(angles, datas, facecolor = ‘g‘, alpha = 0.25)     # 填充
17 plt.thetagrids(angles*180/np.pi, labels)      # 设置极坐标的位置
18 plt.figtext(0.52, 0.95, ‘04-步平凡‘, ha = ‘center‘) # 设置标题
19 plt.grid(True)   # 打开网格线
20 plt.show()       # 展示图片

3. 效果展示:

三、应用B

1. 介绍:使用numpy和PIL库实现图像的手绘效果

2. 代码实现:

 1 # -*- coding:utf-8 -*-
 2 ‘‘‘ 手绘图像效果 ‘‘‘
 3 import numpy as np
 4 from PIL import Image
 5 vec_el = np.pi/2.2   # 光源的俯视角度,弧度值
 6 vec_az = np.pi/4.    # 光源的方位角度,弧度值
 7 depth = 6.          # 深度权值,值越小背景区域越接近白色,值越大背景区域越接近黑色
 8 im = Image.open(‘PICTURE\HandMade.jpg‘).convert(‘L‘)     # 打开图像并转变为灰度模式
 9 a = np.asarray(im).astype(‘float‘)
10 grad = np.gradient(a)              # 取图像灰度的梯度值
11 grad_x, grad_y = grad              # 分别取图像的横纵梯度值
12 grad_x = grad_x * depth / 100.
13 grad_y = grad_y * depth / 100.
14 dx = np.cos(vec_el) * np.cos(vec_az) # 光源对x轴的影响
15 dy = np.cos(vec_el) * np.sin(vec_az) # 光源对y轴的影响
16 dz = np.sin(vec_el)                  # 光源对z轴的影响
17 A = np.sqrt(grad_x**2 + grad_y**2 + 1.)
18 uni_x = grad_x/A
19 uni_y = grad_y/A
20 uni_z = 1./A
21 a2 = 255*(dx * uni_x + dy * uni_y + dz * uni_z) # 光源归一化
22 a2 = a2.clip(0, 255)                 # 预防溢出
23 im2 = Image.fromarray(a2.astype(‘uint8‘))       # 重构图像
24 im2.save(‘HandMade_.jpg‘) # 保存图像
25 im2.show()                # 显示图像

3. 效果展示:

原图                                                                              效果图

四、应用C

1. 简介:用numpy和matplotlib展现数学模型 —— 正态分布

2. 代码实现:

 1 # -*- coding:utf-8 -*-
 2 ‘‘‘ 正态分布 ‘‘‘
 3 import numpy as np
 4 import matplotlib.mlab as mlab
 5 import matplotlib.pyplot as plt
 6
 7 dx = 100           # 正态分布的均值
 8 sigma = 15         # 标准差
 9 x = dx + sigma * np.random.randn(10000)  # 在均值周围产生符合正态分布的x值
10
11 num_bins = 50
12 n, bins, patches = plt.hist(x, num_bins, normed=1, facecolor=‘green‘, alpha=0.5)
13 # 直方图函数,x为x轴的值,normed=1表示为概率密度,即和为一,绿色方块,色深参数0.5.返回n个概率,直方块左边线的x值,及各个方块对象
14 y = mlab.normpdf(bins, dx, sigma)        # 画一条逼近的曲线
15 plt.plot(bins, y, ‘r--‘)
16 plt.xlabel(‘Smarts‘)                     # x轴标签
17 plt.ylabel(‘Probability‘)                # y轴标签
18 plt.title(r‘Histogram of IQ: $\mu=100$, $\sigma=15$‘) # 中文标题
19
20 plt.subplots_adjust(left=0.15)           # 左边距
21 plt.grid(True)      # 打开网格线
22 plt.show()          # 显示图片

3. 效果展示:

原文地址:https://www.cnblogs.com/bpf-1024/p/10747738.html

时间: 2024-08-30 09:26:48

numpy 与 matplotlib 的应用的相关文章

[Python]在win32上安装Numpy和Matplotlib

平台: win7-32   python3.4.3 安装过程实在是太恶心了,整理了一下方便大家,没准搜索引擎能收录到了: 遇到的问题主要有: 1.各种找不到版本兼容的下载地址 2.下载到了 .whl & .egg文件不会安装 3.安装好了文件又缺各种  module    ImportError:No module named 'six'  No module named 'dateutil'  ImportError:No module named 'pyparsing' 好了~整理了一下,具

windows下python配置numpy、matplotlib、scipy

这两天对Python进行了研究,并且配置了numpy.matplotlib以及scipy.现对基本概念以及配置步骤介绍: 基本概念: Python (英语发音:/?pa?θ?n/), 是一种面向对象.解释型计算机程序设计语言.专用的科学计算扩展库很多,例如如下3个十分经典的科学计算扩展库:NumPy.SciPy和matplotlib,它们分别为Python提供了快速数组处理.数值运算以及绘图功能. <python科学计算>这本书中对Python介绍得很是详细,推荐下.电子版下载链接http:/

【Python地理数据处理】一、环境的搭建和准备(numpy,scipy,matplotlib)

本文主要总结<Python地理数据处理>一书中使用到的库及安装方法.在http://www.lfd.uci.edu/~gohlke/pythonlibs/可以下载到对应于python版本的各种库文件. 一.python 使用的为目前的最新版本3.6.2. 二.安装numpy,scipy,matplotlib,基于python3.6 (1)在上述网址中分别找到numpy,scipy,matplotlib进行下载.注意:win版本(32/64),python版本一定要匹配 例如:scipy?0.1

Python配置第三方库Numpy和matplotlib的曲折之路

本人是64位系统,Python新手,花了将近一个晚上才将numpy和matplotlib勉强配置成功,现将这个曲折经历记录如下: 第一步:安装Python 从Python官网下载32位的Python.Python下载地址: 这里之所以下载32位的Python,是因为笔者之前安装过64位Python,在加载第三方模块时各种不成功,百度了一下大家都说直接pip install就OK了,但一直都失败,因此才出此下策,不过好在64位windows系统时支持32位Python的.,其实这里选装32位Pyt

动手实践:在Windows上安装NumPy、Matplotlib、SciPy和IPython

<Python数据分析基础教程: NumPy学习指南(第2版)>第1章NumPy快速入门,本章首先,将介绍如何在不同的操作系统中安装NumPy和相关软件,并给出使用NumPy的简单示例代码.然后,我们将简单介绍IPython(一种交互式shell工具).如前言所述,SciPy和NumPy有着密切的联系,因此你将多次看到SciPy的身影.在本章的末尾,我们将告诉你如何利用在线资源,以便你在受困于某个问题或不确定最佳的解题方法时,可以在线获取帮助.本节为大家介绍动手实践:在Windows上安装Nu

安装Numpy和matplotlib

(1)测试程序     这是我从网上(http://www.open-open.com/lib/view/open1393488232380.html)找到的一个使用Numpy和matplotlib的示例程序,我用这段代码来测试Numpy和matplotlib安装是否成功. import numpy as np import matplotlib.pyplot as plt N = 5 menMeans = (20, 35, 30, 35, 27) menStd = (2, 3, 4, 1, 2

在Ubuntu 14.04 64bit上安装numpy和matplotlib库

原文:http://blog.csdn.net/tao_627/article/details/44004541 按照这个成功安装! 机器学习是数据挖掘的一种实现形式,在学习<机器学习实战>过程中,需要python环境中安装好numpy和matplotlib库,特此将我在Ubuntu 14.04 64bit上的摸索过程总结如下: 书上的建议是: 在Debian/Ubuntu系统下安装Python, Numpy和Matplotlib的最佳方式是使用apt-get等软件包管理器. 避免源码包形式的

机器学习(三) Jupyter Notebook, numpy和matplotlib的详细使用 (上)

工欲善其事,必先利其器.在本章,我们将学习和机器学习相关的基础工具的使用:Jupyter Notebook, numpy和matplotlib.大多数教程在讲解机器学习的时候,大量使用这些工具,却不对这些工具进行系统讲解.我特意添加了这个章节,让同学们在后续编写机器学习算法的过程中,更加得心应手! 一.Jupyter Notebook基础 a--b:在Jupyter Notebook  选中的内容上面添加单元格------ 下面添加单元格 y: change cell to code m: ch

Python——数据分析,Numpy,Pandas,matplotlib

由于图片内容太多,请拖动至新标签页再查看 Python--数据分析,Numpy,Pandas,matplotlib 原文地址:https://www.cnblogs.com/Jery-9527/p/10804069.html