`

python 第三方类库使用

阅读更多

过去几个月练习总结了python的基础知识(基础语法),大概熟悉了django框架(结构运行),接下来准备学习python的第三方类库比如数学二维图形和图像处理等。接下来要总结的就是二维图形的生成比如线状图,图像(片)处理比如剪裁上色等;总结的不能面面俱到,列出几个主要的操作,希望大家多多指点。代码是在django框架里写的,本地访问端口是8000,路由是/user和/pic。

调试操作流程:

1.编写好代码

2.终端执行命令: python manage.py runserver 0.0.0.0:8000

3.浏览器里输入: http://127.0.0.1:8000/user

 

首先上代码和效果图:需要先安装第三方类库

from django.shortcuts import render

from django.http import HttpResponse          # 数据返回到页面展示

import numpy as np                     # python -m pip install numpy 安装第三方类库命令

from numpy.random import randn

 

import matplotlib.pyplot as pt

import matplotlib.mlab as mlab

import mpmath as mp

 

# Create your views here.

 

def user(request):

    # 数据输出页面并终止(类似php echo ‘XX’;die;)

    return HttpResponse(u'<h1>欢迎学习python')


 #sin函数------------

    x = np.arange(0, 360)    #array([0, 1, 2, ...180, 359])  数据对象 类似遍历循环

    y = np.sin(x * np.pi / 180)    #np.pi = 3.14

    pt.plot(x, y)     #绘制曲线

    pt.xlim(0, 360)   # X轴限制区间

    pt.ylim(-1.2, 1.2)     # Y轴限制区间

    pt.title("SIN function")

    pt.show()


 #sin()和cos()函数------------

    x = np.arange(0, 360)

    y = np.sin(x * np.pi / 180)

    z = np.cos(x * np.pi / 180)

    pt.plot(x, y, color='blue')

    pt.plot(x, z, color='red')

    pt.xlim(0, 360)

    pt.ylim(-1.2, 1.2)

    pt.title("SIN & COS function")

    pt.show(



 # 反抛物线------------

    mp.plot(lambda x: x * x, [-10, 10])     #python语法里 lambda 快速定义匿名函数



 来点实用的:柱状图(数据统计经常用到)

# 柱状图------------

    X = [0, 1, 2, 3, 4, 5]      #定义X轴区间

    Y = [222, 42, 455, 664, 454, 334]            #Y轴数据

    fig = pt.figure()            #创建图表

    #x X轴左边界   Y轴方向     0.4柱宽

    pt.bar(X, Y, 0.4, color="green")  

    pt.xlabel("X-axis")   # x轴标识

    pt.ylabel("Y-axis")

    pt.title("data bar chart")

 

    pt.show()


 # 线状图(绘制多条折线 2条)------------

    names = ['5', '10', '15', '20', '25']   #界定X轴单位和间距

    x = range(len(names))

    y = [0.855, 0.84, 0.835, 0.815, 0.81]

    y1 = [0.86, 0.85, 0.853, 0.849, 0.83]

    # pl.xlim(-1, 11)  # 限定横轴的范围

    # pl.ylim(-1, 110)  # 限定纵轴的范围

    pt.plot(x, y, marker='o', mec='r', mfc='w', label=u'y=x^2')   #绘制线条

    pt.plot(x, y1, marker='*', ms=10, label=u'y=x^3')

    pt.legend()  # 让图例生效

    pt.xticks(x, names, rotation=45)  #刻度:刻标  刻度标签

    pt.margins(0)    #类似css里的边距

    pt.subplots_adjust(bottom=0.15)    #图片中子图的底部边距

    pt.xlabel(u"time(s)X-line")  # X轴标签

    pt.ylabel("RMSE")  # Y轴标签

    pt.title("A simple plot")  # 标题

    pt.show()


 # 线状图(绘制1条折线 1条)-----------------

    pt.style.use('ggplot')

    # 输入Y1值,定义X1的范围

    y1 = [0.8, 0.4, 0.2, 0.1, 0.05, 0.025, 0.0125, 0.00625, 0.0031, 0.0016]

    x1 = range(0, 10)

    fig = pt.figure()

    ax1 = fig.add_subplot(1, 1, 1)

    # 每条折线都可以通过选项进行设置,使用不同的数据点类型、颜色和线型

    ax1.plot(x1, y1, marker=r'o', color=u'blue', linestyle='-', label='Blue Solid')

    ax1.xaxis.set_ticks_position('bottom')

    ax1.yaxis.set_ticks_position('left')

    # ax1.set_title('Line Plots: Markers, Colors, and Linestyles')

    # 横坐标命名

    pt.xlabel('Time')

    # 纵坐标命名

    pt.ylabel('Trust Value')

    # loc='best' 指示 matplotlib 根据图中的空白部分将图例

    # 放在最合适的位置。或者,你也可以使用这个参数为图例指定一个具体位置

    pt.legend(loc='best')

    pt.savefig('line_plot.png', dpi=400, bbox_inches='tight')

    pt.show()


 图像处理相关===================

 def pic(request):

    # 图像处理--Image模块是在Python PIL图像处理中常见的模块,对图像进行基础操作的功能基本都包含于此模块内。如open、save、conver、show…等功能。

    # convert()函数,用于不同模式图像之间的转换。PIL中有九种不同模式,分别为1,L,P,

    from PIL import Image  ##调用库

    im = Image.open("E:/beautygirl.jpg")  #文件存在的路径

    #im.show()       # 调用系统图片查看器,打开图片

 

    im.save("E:/beautygirl.png")  ## 将"E:\beautygirl.jpg"保存为"E:\beautygirl.png"

    im = Image.open("E:/beautygirl.png")  ##打开新的png图片

    print(im.format, im.size, im.mode)

 

 # 图片变成灰色-------------

    rgb2xyz = (0.412453, 0.357580, 0.180423, 0,

               0.212671, 0.715160, 0.072169, 0,

               0.019334, 0.119193, 0.950227, 0)

    new_im = im.convert("L", rgb2xyz)

    new_im.show()

# 左边是原图,有边是变灰图


    
box = (300, 300, 700, 700)  ##确定拷贝区域大小

    region = im.crop(box)  ##  将im表示的图片对象拷贝到region中,大小为box

    region.show()


#Draft类 配置图像文件加载器,使得返回一个与给定的模式和尺寸尽可能匹配的图像的版本

    from PIL import Image  ##调用库

    im = Image.open("E:/beautygirl.jpg")  #文件存在的路径

    #print(im.size, im.mode)

    new_im = im.draft("L", (200, 200))      #Draft类 返回一个与给定的模式和尺寸尽可能匹配的图像的版本

    print(new_im.size, new_im.mode)

    new_im.show()


    
 #Rotate类 返回一个按照给定角度顺时钟围绕图像中心旋转后的图像拷贝。变量filter是NEAREST、BILINEAR或者BICUBIC之一。如果省略该变量,或者图像模式为“1”或者“P”,则默认为NEAREST。变量expand,如果为true,表示输出图像足够大,可以装载旋转后的图像。如果为false或者缺省,则输出图像与输入图像尺寸一样大。

    from PIL import Image  ##调用库

    im = Image.open("E:/beautygirl.jpg")  #文件存在的路径

 

    im_45 = im.rotate(45)

    im_30 = im.rotate(30, Image.NEAREST, 1)

    print(im_45.size, im_30.size)

    im_45.show()

    im_30.show()



   #Transform类,使用给定的尺寸生成一张新的图像,与原图有相同的模式,使用给定的转换方式将原图数据拷贝到新的图像中。在当前的PIL版本中,参数method为EXTENT(裁剪出一个矩形区域),AFFINE(仿射变换),QUAD(将正方形转换为矩形),MESH(一个操作映射多个正方形)或者PERSPECTIVE。变量filter定义了对原始图像中像素的滤波器。在当前的版本中,变量filter为NEAREST、BILINEAR、BICUBIC或者ANTIALIAS之一

    print(im.size)

    imtra = im.transform((200, 200), Image.EXTENT, (100, 100, 500, 500))

    print(imtra.size)

    imtra.show()


  #输入图像的一个四边形(通过四个角定义的区域)映射到给定尺寸的长方形。变量data是一个8元组(x0,y0,x1,y1,x2,y2,x3,y3),它包括源四边形的左上,左下,右下和右上四个角。

    print(im.size)

    imtra = im.transform((200, 200), Image.QUAD, (0, 0, 0, 500, 600, 500, 600, 0)) #00是原点  0,500是左上角坐标  600,500是右上角坐标  600,0右下角坐标

    print(imtra.size)

    imtra.show()


 

 上述代码是借鉴网上专业技术博客,实际动手操作完成;

python的第三方类库还有很多就这里就简单列举出几个常用的,还希望大家多多指点

--------------------------------谢谢---------------------------------


 

  • 大小: 4.8 KB
  • 大小: 17.4 KB
  • 大小: 22.1 KB
  • 大小: 20 KB
  • 大小: 14.8 KB
  • 大小: 24.2 KB
  • 大小: 19.7 KB
  • 大小: 2 KB
  • 大小: 363.6 KB
  • 大小: 190.8 KB
  • 大小: 102.2 KB
  • 大小: 839.7 KB
  • 大小: 74 KB
  • 大小: 82.1 KB
分享到:
评论

相关推荐

    python中需要用到的requests第三方类库

    要安装`requests`库,你可以使用Python的包管理器pip。在命令行中输入以下命令: ``` pip install requests ``` 2. **基础使用**: `requests.get()`是最常见的HTTP请求方式,用于获取网页内容。例如,要获取...

    Python-arrow更好的Python日期时间操作类库

    为了提升开发体验,社区开发了多个第三方库,其中之一就是`arrow`库。`arrow`库被誉为“更好的Python日期时间操作类库”,它提供了更加简洁、人性化的API,使开发者能够更高效地处理日期和时间。 `arrow`库的核心...

    Python第三方库在Excel文件读写中的应用.pdf

    本文主要探讨了Python第三方库在Excel文件读写中的应用,包括pyExcelerator和xlrd这两个库的具体使用方法和它们在实际操作中的优劣比较。 pyExcelerator是专门用于操作Excel文件的一个第三方类库模块。它不仅能够...

    学会python永不加班系列之操作excel.pdf

    Python 操作 Excel 基础知识点 Python 作为一种解释性语言,简单高效的模式逐渐火爆。同时存在多种扩展性。永不加班系列 Python 正确操作 Excel。...* 第三方类库的使用和选择 * Python 语言在自动化办公中的应用

    打包 Python 类库

    打包 Python 类库

    python魔鬼训练营

    本课程的内容包括从python基础、python的表达式、数据结构等基础知识,还包括迭代器、包装器等高级功能,还有正则表达式、xml、Excel等工作中常用的第三方类库的使用讲解,以及一些web应用的第三方类库的使用。...

    基于Python第三方库实现Excel读写.pdf

    本文档是一篇关于使用Python语言及其第三方库来实现对Excel文件进行读写操作的技术文章。作者通过具体阐述两种库(pyExcelerator和xlrd)的使用方法和细节,深入探讨了在非Windows操作系统环境下,如何方便地读取、...

    lstm 成功,lstm实现,Python

    标题“lstm成功,lstm实现,Python”暗示我们将讨论使用Python编程语言实现的长短期记忆网络(LSTM)在实际项目中的应用和成功案例。描述中提到“利用LSTM算法进行数据预测和数据分析”,表明LSTM主要用于时间序列...

    python 第三方库的安装及pip的使用详解

    python是一款简单易用的编程语言,特别是其第三方库,能够方便我们快速进入工作,但其第三方库的安装困扰很多... 您可能感兴趣的文章:无法使用pip命令安装python第三方库的原因及解决方法使用anaconda的pip安装第三方py

    经典的第三方类,串口类,源代码

    第三方类库是开发者社区提供的工具,旨在简化特定任务的实现。在串口通信中,第三方串口类库可以帮助程序员快速地集成串口功能,而无需从零开始编写所有底层代码。这些类库通常经过优化,具有良好的错误处理机制,...

    第13课 Python库丨教案-八年级信息技术.docx

    安装Python第三方库最常用的方法是使用`pip`。例如,如果要安装`requests`库,可以在命令行中输入`pip install requests`。在IDE如PyCharm中,也可以通过设置菜单进行安装。加载第三方库的方式与标准库相同,也是...

    python 离线安装numpy,matplotlib类库及其依赖包 whl合集

    这些文件可以在Python的官方网站或其他可靠的第三方资源库下载。 安装顺序一般遵循依赖关系,先安装numpy,因为matplotlib可能依赖numpy。使用pip进行离线安装的命令如下: 1. 将.whl文件复制到Python的Scripts...

    python-3.10.8-amd64 python3.10 64位windows安装包

    pip用于安装、升级和管理Python第三方库,如numpy、pandas和matplotlib等,这些库极大地扩展了Python的功能。用户可以通过`pip install &lt;package_name&gt;`命令来安装所需的库。 Python环境配置是使用Python的关键步骤...

    C++读取EXCEL

    总的来说,“C++读取Excel”涉及的关键知识点包括:C++编程,第三方库的使用(如LibXL、Boost等),文件操作,以及可能的跨语言集成(如通过Python-C API)。这些技能对于开发需要处理Excel数据的C++应用程序至关...

    scipy-1.1.0-cp35-none-win32.whl

    Python第三方类库,scipy-1.1.0-cp35-none-win32.whl,scipy-1.1.0-cp35-none-win32.whl。

    python基础知识

    Python的特点可以概括为动态性、面向对象、可扩展性、可嵌入性、跨平台性、强制类型转换以及丰富的第三方类库。动态性指的是Python在执行时会进行类型检查和内存分配,这意味着在Python中可以不需要声明变量类型就能...

    Python准备工作.pdf

    最后,Python具有丰富的第三方类库,这些类库涵盖了从文本处理到科学计算等多个领域,极大地提升了开发效率。 不过,Python也有其待发展之处,最主要的问题是运行速度。由于Python是一种解释型语言,其运行速度相对...

    IronPython-2.7.5.zip

    9. **库支持**:IronPython能够导入和使用许多Python第三方库,尽管可能需要一些适配工作,特别是那些依赖于C扩展的库。 10. **工具集成**:IronPython可以很好地与Visual Studio等.NET开发工具集成,提供调试、...

    python程序设计与算法基础教程-概述.pdf

    Python的官方网站(www.python.org)提供完整的语言文档和不同版本的下载,而Python扩展库的官方索引PyPI(pypi.python.org)则是一个庞大的第三方库资源库,开发者可以在这里找到并安装所需的各种扩展库。...

Global site tag (gtag.js) - Google Analytics