python
文章平均质量分 64
忍者1
这个作者很懒,什么都没留下…
展开
-
python快速生成二维码
我相信很多人,跟我一样,经常需要生成各种二维码,好在微信中发送,传播,我通常都会用一个几行python代码的脚本快速生成二维码。想用的时候,随时输入一个命令,就能生成二维码。废话不多说,直接上脚本(python 2.7 版本)import qrcodeimport sysdef run(url, path): qr_image = qrcode.make(url) qr_image.save(path)if __name__ == '__main__': args转载 2021-10-26 15:31:35 · 323 阅读 · 0 评论 -
Python作图模块之turtle
Python2里面默认有一个包叫做turtle,别名:乌龟,对于Python初学者很有吸引力,适合学习。这个包,主要是画图用的,这里用它画个图,并提供源码。源码import turtledef draw_square(turtle):for i in range(4):turtle.forward(100)turtle.right(90)def draw_flower(turtle):for i in range(36):draw_square(turtle)turtle.right(转载 2021-10-26 14:49:26 · 155 阅读 · 0 评论 -
利用python发送email邮件
Python发送邮件代码,Python2/3都可以直接使用。发送普通邮件发送文本和html普通邮件如下:from email.header import Headerfrom email.mime.text import MIMETextfrom email.utils import parseaddr, formataddrimport smtplibdef _format_addr(s):name, addr = parseaddr(s)return formataddr((Heade转载 2021-10-24 17:19:26 · 885 阅读 · 0 评论 -
Python操作Mysql麻烦,敢不敢自己封装一个包可好?
数据分析免不了使用Python操作Mysql,直接操作Mysql的表,对其进行操作;或者直接将Python中的数据集统计的结果保存到Mysql。这个时候,一个sql客户端连接是免不了的,每次都要写一大堆代码,确实很麻烦。待你代码写成,女神头发都白了!那么,何不对这个功能,通常是自己业务常用的功能做个二次封装呢?这样使用起来会事半功倍,很方便。显然,常用业务统计,肯定会有很多,每次我们都重复地初始化mysql连接,然后获取cursor(游标),执行(查询,插入,删除),关闭数据库操作,无疑是浪费时间的,转载 2021-10-24 16:46:06 · 118 阅读 · 0 评论 -
Python语法速查,这些都会吗?
Python 是一门独特的语言,快速浏览一下他的要点:1)、面向对象:每一个变量都是一个类,有其自己的属性(attribute)与方法(method)。2)、语法块:用缩进(四个空格)而不是分号、花括号等符号来标记。因此,行首的空格不能随意书写。3)、注释:行内用“#”号,行间注释写在两组连续三单引号之间:’’’4)、续行:行尾输入一个反斜杠加一个空格(’\ ‘),再换行。如果行尾语法明显未完成(比如以逗号结尾),可以直接续行。5)、打印与输入: 函数 print() 与 input(),注意 p转载 2021-10-24 16:14:13 · 282 阅读 · 0 评论 -
Python3爬虫入门之开篇
在介绍Python3爬虫之前,先说一下为什么需要学习Python3,为什么很多人会安装双版本Python,既Python2与Python3都安装,因为Python2与Python3都需要学习!只学习Python2,这里有很多理由来反驳:Python 3 才是Python的未来Python 官方都建议指直接学习Python 3Python 2 只维护到2020年Python2在2020年就不维护了,那么就不学习Python2了吗?显然不是,windows xp 和 windows 7系统,也照样转载 2021-10-24 15:40:19 · 51 阅读 · 0 评论 -
Python批量删除mysql中千万级大量数据
场景描述线上mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多。运维找过来,磁盘占了200G,最后问了运营,可以只保留最近3天的,前面的数据,只能删了。删,怎么删?因为这是线上数据库,里面存放有很多其它数据表,如果直接删除这张表的数据,肯定不行,可能会对其它表有影响。尝试每次只删除一天的数据,还是卡顿的厉害,没办法,写个Python脚本批量删除吧。具体思路是:每次只删除一天的数据;删除一天的数据,每次删除50000条;一天的数据删除完,开始删转载 2021-10-24 15:12:02 · 297 阅读 · 0 评论 -
Python装饰器
在Python里面,函数可以作为参数传入一个函数,函数也可以复制给变量,通过变量调用函数。装饰器可以扩展一个函数的功能,为函数做一个装饰器注解,可以把装饰器里面定义的功能于所有函数提前执行,提升代码的复用程度。现在有这么个场景。打卡互联网公司里面有各种员工,程序员,前台…,程序员在打开电脑前,需要打卡,前台要早点来开门(我也不清楚,谁开门,这里假定,前台开门),前台开门前也需要打卡。也就是说,打卡是所有员工的最先的公共动作,那么可以把打卡这个功能抽出来作为公共逻辑。普通函数调用方法自然想到,可以实转载 2021-10-24 12:35:31 · 56 阅读 · 0 评论 -
Python 模块
模块让你能够有逻辑地组织你的Python代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块也是Python对象,具有随机的名字属性用来绑定或引用。简单地说,模块就是一个保存了Python代码的文件。模块能定义函数,类和变量。模块里也能包含可执行的代码。例子一个叫做aname的模块里的Python代码一般都能在一个叫aname.py的文件中找到。下例是个简单的模块support.py。def print_func( par ): print "Hello : ", par转载 2021-10-24 11:49:44 · 81 阅读 · 0 评论 -
NumPy 介绍
什么是 NumPy?NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。NumPy包的核心是 ndarray 对象。它封装了python原生的同数据类型的 n 维数组,为了保证其性能优良,其中有许多操作都是代码在本地进行编译后执行的。NumPy数组 和 原生Python Array(数组)之间有转载 2021-10-24 11:16:53 · 339 阅读 · 0 评论 -
NumPy快速入门教程
先决条件在阅读本教程之前,你应该了解一些Python的基础知识。如果你想复习一下,请回去看看Python教程。如果您希望使用本教程中的示例,则还必须在计算机上安装某些软件。有关说明,请参阅https://scipy.org/install.html。基础知识NumPy的主要对象是同构多维数组。它是一个元素表(通常是数字),所有类型都相同,由非负整数元组索引。在NumPy维度中称为 轴 。例如,3D空间中的点的坐标[1, 2, 1]具有一个轴。该轴有3个元素,所以我们说它的长度为3.在下图所示的转载 2021-10-24 10:21:19 · 297 阅读 · 0 评论 -
Python 数据类型
另见数据类型对象数组类型之间的转换NumPy支持比Python更多种类的数字类型。本节显示了哪些可用,以及如何修改数组的数据类型。支持的原始类型与 C 中的原始类型紧密相关:Numpy 的类型 C 的类型 描述np.bool bool 存储为字节的布尔值(True或False)np.byte signed char 平台定义np.ubyte unsigned char 平台定义np.short short 平台定义np.ushort unsigned short转载 2021-10-24 10:03:29 · 1302 阅读 · 0 评论 -
Python 创建数组
另见数组创建相关API简介创建数组有5种常规机制:从其他Python结构(例如,列表,元组)转换numpy原生数组的创建(例如,arange、ones、zeros等)从磁盘读取数组,无论是标准格式还是自定义格式通过使用字符串或缓冲区从原始字节创建数组使用特殊库函数(例如,random)本节不包括复制,连接或以其他方式扩展或改变现有数组的方法。它也不会涵盖创建对象数组或结构化数组。这些都包含在他们自己的章节中。将Python array_like对象转换为Numpy数组通常,在Pytho转载 2021-10-22 19:40:41 · 5820 阅读 · 0 评论 -
NumPy与输入输出
使用genfromtxt导入数据NumPy提供了几个函数来根据表格数据创建数组。我们将重点放在genfromtxt函数上。In a nutshell, genfromtxt runs two main loops. 第一个循环以字符串序列转换文件的每一行。第二个循环将每个字符串转换为适当的数据类型。这种机制比单一循环慢,但提供了更多的灵活性。特别的, genfromtxt考虑到缺失值的情况, 其他更简单的方法如loadtxt无法做到这点.注意举例时,我们将使用以下约定:>>> i转载 2021-10-22 19:00:52 · 138 阅读 · 0 评论 -
NumPy索引
另见索引索引相关API数组索引是指使用方括号([])来索引数组值。索引有很多选项,它可以为numpy索引提供强大的功能,但是功能会带来一些复杂性和混淆的可能性。本节仅概述了与索引相关的各种选项和问题。除了单个元素索引之外,大多数这些选项的详细信息都可以在相关章节中找到。赋值与引用以下大多数示例体现在引用数组中的数据时使用索引。分配给数组时,这些示例也可以正常运行的。有关分配的原理具体示例和说明,请参见最后一节。单个元素索引人们期望的是1-D数组的单元素索引。它的工作方式与其他标准Python序转载 2021-10-22 18:23:41 · 563 阅读 · 0 评论 -
NumPy广播(Broadcasting)
另见numpy.broadcastNumpy中的数组广播注意有关广播概念的说明,请参阅此文章。术语广播(Broadcasting)描述了 numpy 如何在算术运算期间处理具有不同形状的数组。受某些约束的影响,较小的数组在较大的数组上“广播”,以便它们具有兼容的形状。广播提供了一种矢量化数组操作的方法,以便在C而不是Python中进行循环。它可以在不制作不必要的数据副本的情况下实现这一点,通常导致高效的算法实现。然而,有些情况下广播是一个坏主意,因为它会导致内存使用效率低下,从而减慢计算速度。转载 2021-10-22 17:47:15 · 605 阅读 · 0 评论 -
NumPy字节交换
字节排序和ndarrays简介ndarray是一个为内存中的数据提供python数组接口的对象。经常发生的情况是,要用数组查看的内存与运行Python的计算机的字节顺序不同。例如,我可能正在使用带有 little-endian CPU 的计算机 - 例如Intel Pentium,但是我已经从一个由 big-endian计算机 编写的文件中加载了一些数据。假设我已经从Sun(big-endian)计算机写入的文件中加载了4个字节。我知道这4个字节代表两个16位整数。在 big-endian 机器上,首转载 2021-10-22 17:14:08 · 104 阅读 · 0 评论 -
结构化数组
介绍结构化数组是ndarray,其数据类型是由一系列命名字段组织的简单数据类型组成。例如:>>> x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)],... dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])>>> xarray([('Rex', 9, 81.), ('Fido', 3, 27.)], dtyp转载 2021-10-22 16:37:25 · 256 阅读 · 0 评论 -
编写自定义数组容器
NumPy 的分派机制(在numpy版本v1.16中引入)是编写与numpy API兼容并提供numpy功能的自定义实现的自定义N维数组容器的推荐方法。应用包括 dask 数组(分布在多个节点上的N维数组)和 cupy数组(GPU上的N维数组)。为了获得编写自定义数组容器的感觉,我们将从一个简单的示例开始,该示例具有相当狭窄的实用程序,但说明了所涉及的概念。>>> import numpy as np>>> class DiagonalArray:...转载 2021-10-22 12:10:15 · 112 阅读 · 0 评论 -
子类化ndarray
介绍子类化ndarray相对简单,但与其他Python对象相比,它有一些复杂性。在这个页面上,我们解释了允许你子类化ndarray的机制,以及实现子类的含义。ndarrays和对象创建ndarray的子类化很复杂,因为ndarray类的新实例可以以三种不同的方式出现。这些是:显式构造函数调用 - 如 MySubClass(params)。这是Python实例创建的常用途径。查看转换 - 将现有的ndarray转换为给定的子类模板中的新内容 - 从模板实例创建新实例。示例包括从子类化数组返回切转载 2021-10-22 11:30:43 · 140 阅读 · 0 评论 -
NumPy其他杂项
IEEE 754 浮点特殊值在 NumPy 中定义的特殊值可以通过:nan,inf,NaNs 可以用作简陋的占位类型(如果你并不在乎初始的值是什么的话)注意:不能使用相等来测试 NaN。例如:>>> myarr = np.array([1., 0., np.nan, 3.])>>> np.nonzero(myarr == np.nan)(array([], dtype=int64),)>>> np.nan == np.nan # is a转载 2021-10-22 10:35:43 · 303 阅读 · 0 评论 -
NumPy与 Matlab 比较
介绍MATLAB®和NumPy / SciPy有很多共同之处。但是有很多不同之处。创建NumPy和SciPy是为了用Python最自然的方式进行数值和科学计算,而不是MATLAB®克隆。本页面旨在收集有关差异的智慧,主要是为了帮助熟练的MATLAB®用户成为熟练的NumPy和SciPy用户。一些关键的差异MATLAB NumPy在MATLAB®中,基本数据类型是双精度浮点数的多维数组。大多数表达式采用这样的数组并返回这样的数 对这些数组的2-D实例的操作被设计成或多或少地像线性代数中的矩阵运算。转载 2021-10-22 10:05:55 · 1494 阅读 · 0 评论 -
NumPy从源码构建
此处给出了从源代码构建NumPy的一般概述,以及单独给出的特定平台的详细说明。先决条件构建NumPy需要安装以下软件:基本安装要安装NumPy运行:pip install .要执行可以从源文件夹运行的就地构建:python setup.py build_ext --inplaceNumPy构建系统使用setuptools(从numpy 1.11.0开始,之前很简单distutils)和numpy.distutils。使用virtualenv应该按预期工作。注意:有关在NumPy上进行开发工转载 2021-10-21 21:02:28 · 985 阅读 · 0 评论 -
如何扩展NumPy
编写扩展模块虽然ndarray对象旨在允许在Python中进行快速计算,但它也被设计为通用的并且满足各种各样的计算需求。因此,如果绝对速度是必不可少的,那么就不能替换特定于您的应用程序和硬件的精心编制的循环。这是numpy包含f2py的原因之一,因此可以使用易于使用的机制将(简单的)C / C ++和(任意)Fortran代码直接链接到Python中。我们鼓励您使用和改进此机制。本节的目的不是记录此工具,而是记录编写此工具所依赖的扩展模块的更基本步骤。当扩展模块被编写,编译并安装到Python路径(sy转载 2021-10-21 20:08:53 · 440 阅读 · 0 评论 -
使用Python作为粘合剂
很多人都喜欢说Python是一种很棒的粘合语言。希望本章能说服你这是真的。Python的第一批科学家通常使用它来粘合在超级计算机上运行的大型应用程序代码。在Python中编写代码比在shell脚本或Perl中编写代码更好,此外,轻松扩展Python的能力使得创建专门适应所解决问题的新类和类型变得相对容易。从这些早期贡献者的交互中,Numeric出现了一个类似于数组的对象,可用于在这些应用程序之间传递数据。随着Numeric的成熟和发展成为NumPy,人们已经能够在NumPy中直接编写更多代码。通常,此代码转载 2021-10-21 19:52:30 · 331 阅读 · 0 评论 -
编写您自己的ufunc
创建一个新的ufunc在阅读本文之前,通过阅读/略读扩展和嵌入Python解释器的第1部分中的教程以及如何扩展NumPy,可以帮助您熟悉Python的C扩展基础知识。umath模块是一个计算机生成的C模块,可以创建许多ufunc。它提供了许多如何创建通用函数的示例。使用ufunc机制创建自己的ufunc也不困难。假设您有一个函数,您想要在其输入上逐个元素地操作。通过创建一个新的ufunc,您将获得一个处理的函数广播N维循环自动类型转换,内存使用量最少可选的输出数组创建自己的ufunc并不困转载 2021-10-19 21:53:24 · 74 阅读 · 0 评论 -
深入的知识 迭代数组中的元素 # 基本迭代
一种常见的算法要求是能够遍历多维数组中的所有元素。数组迭代器对象使这种方法易于以通用方式完成,适用于任何维度的数组。当然,如果您知道要使用的维数,那么您始终可以编写嵌套for循环来完成迭代。但是,如果要编写适用于任意数量维度的代码,则可以使用数组迭代器。访问数组的.flat属性时返回数组迭代器对象。基本用法是调用PyArray_IterNew(array),其中array是ndarray对象(或其子类之一)。返回的对象是一个array-iterator对象(由ndarray的.flat属性返回的同一对象转载 2021-10-19 21:23:44 · 304 阅读 · 0 评论