自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Anders's Blog

似静而动,荣辱不惊;动静相行,心致,行随,仁智合一,远见卓识者!

  • 博客(232)
  • 资源 (8)
  • 收藏
  • 关注

原创 用yield关键字创建生成器

Python使用 生成器(generator) 对延迟操作提供了支持。所谓延迟操作,是指在需要的时候才产生结果,而不是立即产生结果。这也是生成器的主要好处。什么是生成器?生成器其实是一种特殊的迭代器(iterator),但是不需要像迭代器一样实现__iter__()和__next__()方法,简单的说生成器是通过一个或多个yield表达式构成的函数,如果一个函数包含yield关键字,这个函...

2019-03-28 17:31:24 823

原创 Python中的迭代器与可迭代

很多人在听到迭代器与可迭代这两个名词时往往会搞不清楚,甚至认为他们是一样的,但是实际上他们是不同的概念。我们先来直观的区分这两者有什么不同。可迭代 (iterable):如果一个对象具备有__iter__() 或者 __getitem__()其中任何一个魔术方法的话,这个对象就可以称为是可迭代的。其中,__iter__()的作用是可以让for循环遍历,而__getitem__()方法可以让实例...

2019-03-28 16:03:13 2678

原创 python的短逻辑

python中的与(and)和或(or)都是短路的与或,短路指的是当通过第一个值能判断出结果时,就不再去查看第二个值了。Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算:与(and)运算:对于与运算,由于要求两个都为True结果才为True,所以如果与运算的第一个值是False,这时无论第二个值是什么,最终结果都会是False。因此与运算的第一...

2019-03-27 23:33:34 539

原创 循环体与else语句

大家一定非常熟悉else关键字语句,else通常是用来配合if语句使用的,但是在Python的else语句并不只能用在if语句之后,还可以用在循环语句甚至try异常处理语句中,这虽然不是什么秘密,但是很多人没有发现它的好处。for & else默认情况下,只有当for循环语句正常执行后,最后才会执行else语句。for i in list("abcdefg"): print(...

2019-03-27 23:32:05 4468

原创 Python变量的作用域

Python程序有各种各样的命名空间,它指的是在该程序段内一个特定的名称是独一无二的,它和其它同名的命名空间是无关的。在Python中每一个函数都有自己的命名空间,如果在函数体外部,也就是主程序范围内定义一个变量a,然后在函数体内也定义一个变量a,那么两者指带的是不同的变量。但是要知道的是场景总是多变的,假设我需要在函数体内也访问并修改一个定义在主程序范围内的变量是否可以呢?先来看一个例子,我...

2019-03-27 23:30:32 192

原创 用wordcloud和jieba生成中文词云

WordCloud是Python中一个非常优秀的第三方词云展示库,但是处理中文就不怎么能胜任,因为中文通常包含着一整句话,尽管在WordCloud里虽然也有process_text()方法用于把很长的文字做分隔,但这个方法本身是根据英文文本分词设计的,所以对于中文字的展示必须要配合更适合做中文分词处理的jieba分词库来操作效果更佳,今天就拿这两个库配合一起展示下小说《三国演义》中,四个字成语中那...

2019-03-27 23:29:52 7321

原创 Python之jieba中文分词库

jieba分词是Python中目前最受欢迎的中文分词库,他有许多特点,为了便于介绍直接引用官方介绍如下。支持三种分词模式:精确模式,试图将句子最精确地切开,适合文本分析;全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。支持繁体分词支持自定义词典MIT ...

2019-03-27 23:27:37 4619

原创 Python之WordCloud词云库

WordCloud(词云)是Python中一个非常优秀的第三方词云展示库,WordCloud以词语为基本单位,根据你给出的字符串,对词频进行统计,然后以不同的大小显示出来。说的直接点就是它可以更加直观和艺术的实现词频的可视化。首先,逻辑上来说,生成一个漂亮的词云文件主要以如下3个过程来完成:配置对象参数加载词云文本输出词云文件 (如果不加说明默认的图片大小为400 * 200)...

2019-03-27 23:26:11 4781

原创 pandas中map和applymap及apply的区别

在pandas中,针对于行或者列又或者是每个元素的操作很容易让人混淆,下面我们来看看分别对应的几个函数区别。apply()apply()是pandas里DataFrame的函数,可以针对DataFrame中的行数据或列数据应用操作。注意:这里的apply是应用到每一行或者每一列操作,有专门的axis可以指定,默认是axis=0.import pandas as pdimport nu...

2019-03-23 17:14:51 2359 1

原创 在matplotlib中创建子图的多种方式

在用Matplotlib绘制图像时,有时候需要从多个角度对数据进行对比。为此子图的概念便提了出来,子图可以在较大的图形中同时放置一组较小的坐标轴。这些子图可能是画中画、网格图,或者是其他更复杂的布局形式。创建子图常用的可以有如下三种方式。使用add_subplot()面向对象的方式来创建子图使用面向对象的方式创建子图前,需要创建一个figure对象,如fig = plt.figure()...

2019-03-23 16:24:48 5501

原创 路径处理库pathlib使用详解

在编程中处理文件的读写操作时免不了要和文件路径打交道,甚至有时候为了完成某些场景功能会变的有些繁琐,以前在Python中操作文件路径,我们更多的时候是使用os模块。而到了Python3时代后,Python3的系统标准库pathlib模块的 Path 对路径的操作会更简单。甚至可以说pathlib已经可以完全替代os.path,它完全采用面向对象的编程方式,因为Python 文档给它的定义是 Ob...

2019-03-23 00:52:23 26030 7

原创 匿名函数lambda

在Python中有个匿名函数特性非常的便捷和有用,用关键字lambda就可以声明一个匿名函数,所以很多时候直接称呼为lambda函数。每次介绍新特性的时候,我们都要反问什么是lambda函数呢?因为又叫匿名函数,所以是指没有声明函数名称的函数,它和平时我们定义普通函数使用def关键字不同,lamda函数的声明语法如下:lambda argument_list: expression其中,...

2019-03-22 22:12:14 330

原创 python之datetime模块

Python的时间管理模块中除了time模块外还有非常好用的datetime模块,但不得不说的是有一点非常令人困扰,因为在datetime模块中有一个time对象,而time模块本身还有一个函数叫time()。其实Datetime比time高级了不少,可以直接理解为datetime是基于time进行了封装,提供了更多实用的函数。datetime模块定义了下面这几个类:**date:**表示日...

2019-03-21 17:25:02 159 1

原创 python之time模块

在编程中经常需要花费大量的精力来处理日期和时间。在Python有许多关于日期时间的内置库可以帮助我们减轻不少处理时间的工作,所以这次先从time模块介绍开始。需要注意的是在time模块中的大多数函数是调用了所在平台C library的同名函数, 所以要特别注意有些函数是平台相关的,可能会在不同的平台有不同的效果。另外一点是,由于是基于Unix Timestamp,所以其所能表述的日期范围被限定...

2019-03-21 17:23:04 2345

原创 关于Python鸭子类型

Python对实现多态性的要求很宽松,这就代表我们可以对不同对象调用同名的操作,甚至不用关注和谐对象的类型是什么,我们称这样的方式叫做鸭子类型。说的再通俗一点,就是如果某个对象的形状像鸭子,走的像鸭子,叫声像鸭子,那么就可以称这个对象是鸭子。当然这是通俗的解释,python中的鸭子类型也是这个道理,我们用实例解释一下。下面我们定义了一个父类名为Quote,它含有两个who和says方法,以及定义...

2019-03-20 23:43:40 580

原创 @classmethod与@staticmethod区别

在Python中有3种方式定义类方法分别是常规方式、@classmethod修饰方式、@staticmethod修饰方式。接下来分别对3种不同方式的定义举例说明。普通方法: 其实就是需要操作一些实例独有的属性,是实例而不是类。第一个参数一般是隐式地将实例传递给self参数。class People(): def __init__(self, name, gender): ...

2019-03-20 23:41:00 2781 1

原创 Python常用高阶函数

高阶函数是在Python中一个非常有用的功能函数,所谓高阶函数就是一个函数可以用来接收另一个函数作为参数,这样的函数叫做高阶函数。为了便于理解,我们从实际例子来看看函数当做参数被传递到另个函数是什么样的。我们把abs()函数赋值给了f变量,接下来你就可以像使用abs()函数本身那样使用f变量了,区别只是换了个名字而已。# 将求绝对值的abs函数赋值给f变量f = abs# f变量等同于ab...

2019-03-20 23:39:42 6410 1

原创 理解Python中is 与 == 的区别

在Python中,有一个问题会被经常问到,那就是运算符is与==有什么区别?很多人都知道他们都是比较两个对象是否相等,说起来都是比较对象,但是分不清什么时候用哪个,其实非常容易区分只要记住一点。==是比较运算符,它比较的是两个对象中的值是否是相等的。而is是同一性运算符,比较的是两个对象的id值是否相等或者说比较的是对象的内存空间地址是否相等。为了更好更深刻的理解,我们还是从几个例子出发...

2019-03-20 23:38:14 232

原创 numpy.where的用法

在用Python处理大量数据时,Python的数据科学库极为有用,这里要提到的就是Numpy库。在Numpy库里有个where函数,它是Python中三元表达式 x if condition else y的另一种版本。为了更好的理解numpy.where函数,我们来看几个where函数的使用例子。传统三元表达式有种情况,假设我们有xarr和yarr两个NumPy数组,还有一个cond的包含布尔...

2019-03-11 09:55:56 3581

原创 Python标准库itertools模块

我们知道,迭代器在Python中是一种非常高效又好用的数据结构,迭代器的特点是可以做到惰性求值**(lazy evaluation的概念)** ,什么意思呢?就是只有当迭代到某个值的时候它才会被计算产生,比如要遍历一个大文件或者庞大的数据集时,使用传统的遍历就需要将它们一次性全部储存在内存中,而使用迭代器显而易见的好处则是每次只从对象中读取一条数据,不会造成内存的过大开销。itertools中的...

2019-03-11 09:55:11 312

原创 Python另类格式化f-strings特性

我们都知道在Python中字符串格式化常用的有百分号操作符(%)和 str.format()方式,前者最早是在Python 2.5版本以前所支持的,之后便推出了后者。而在Python3.6发布之后,在PEP 498提案或建议书中提出了一种新型字符串格式和机制,被称为(Literal String Interpolation) 字符串插值,也就是f-strings,他的特点是进行字符串格式化时都是以...

2019-03-11 00:08:07 938 1

原创 实用的(named tuple)命名元组

Python的创始人Guido van Rossum曾经提过一个建议:“不要过度的自己去构建数据结构,尽量去使用命名元组 (named tuple) 而不是对象,尽量使用简单的属性域,因为内置数据类型是你最好的朋友。”那么什么是命名元组呢,要解释什么是命名元组时我觉得很有必要说明下为什么我们需要它以及它可以提供什么功能,那就自然明白什么是命名元组了。我们知道在一些编程语言里,都有struc...

2019-02-22 17:14:02 3182

原创 Python标准库collections模块

Python中最常用的几种数据结构是list、tuple、dict、 set,但是当我们处理一些特定数据结构场景时就显得有些不方便或者效率低,不过Python丰富的类库已经帮我们解决了这个问题,今天要提到的就是collections库,该库里包含了许多非常有用的集合方法,熟练掌握这些方法可以让我们平时写代码时更加Pythonic而不是绞尽脑汁把简单的代码复杂化。先来看看几个非常有用的collec...

2019-02-22 17:11:35 739

原创 使用setdefault方法处理字典缺失值

placeholders

2019-01-30 22:54:56 498

原创 Python的魔术方法(Magic Method)

placeholders

2019-01-30 22:54:41 1056 1

原创 Python读取数据编码排错

placeholders

2019-01-30 22:54:21 274

原创 从零开始学PowerShell(10) PowerShell中的子表达式

在PowerShell中你或许看到过类似@(......), $(......),(......)这类使用圆括号将一系列语句包裹在一起的写法形式出现在脚本中。今天我们要说的就是这几种表达式,它们被称作子表达式,子表达式。三种表达式分别如下:组表达式(......) 我们称这类由圆括号括起来的表达式为组表达式。组表达式主要用于对语句块的优先级检测,可以看到圆括号内的语句块是优先...

2018-03-31 11:53:47 2516

原创 从零开始学PowerShell(9) 创建PowerShell对象

我们之前有一篇文章写过如何获取对象的信息,但是从没有说过如何创建一个PowerShell对象。正巧也看到很多刚学PowerShell的朋友问起这个问题,今天就来说一说如何创建PowerShell对象。从抽象层面来说,在PowerShell里哪怕我们定义一个普通变量也已经是创建了一个对象。那么确切的说我们现在是想创建一个实例对象和COM对象。在PowerShell里创建对象可以使用New-O...

2018-03-31 11:48:24 2680

原创 从零开始学PowerShell(8) 创建一个进度条

我相信不少人会遇到这类情况,通常在执行一些大批量操作时,代码正在后台持续执行,你又没有为每个细节设置详尽的输出的话,你也不知道到底是脚本卡死了还是正在运行,因为没有任何响应反馈。应对这种情况,要是我们给脚本创建一个进度条就可以避免以上这些可能产生的问题,如果你有留意过PowerShell更新帮助文档时的状态就会发现在下载更新文档时PowerShell会自动出现一个进度条。为PowerS...

2018-03-27 23:09:12 4156

原创 从零开始学PowerShell(7) 编写一个函数体

我们已经熟悉了不少PowerShell命令并且学会了通过Get-Help帮助命令自寻去挖掘一个新命令的使用方法,今天是时候可以来讲下如何重用命令了。在PowerShell控制台中,如果我们要重用之前的命令只需要通过键盘方向键上下翻动就可以了,但这不是今天我要说的内容,毕竟当命令的代码行数越来越多,越来越复杂时创建一个PowerShell函数最合适不过了,在编程里什么是函数呢,你可以简单的理解为...

2018-03-27 23:06:46 9013 3

原创 我们为什么应该学习PowerShell

我想来谈谈大家为什么应该学习PowerShell,以此作为本公众订阅号的首发文章。截止这篇内容发布时,2017年已是PowerShell面世的第11个年头了,PowerShell已经贯穿了整个微软产品架构体系。更重要的一点是,随着微软的跨平台战略,PowerShell也已开源并能够跨系统平台运行,面对这样一门新时代的脚本自动化语言技术,无论对于开发者还是IT专业人士来说,还不会PowerShe...

2018-03-26 23:49:08 2445

原创 强大的PowerShell帮助系统

还记得我们之前说过PowerShell中最常用也是最基本的命令Get-Help,当我们遇到新命令或者想知道一些PowerShell基本特性功能时,自带的帮助查询命令可算的上是我们的启蒙老师了。今天要说的话题就帮助有关,因为早在PowerShell 3.0中,PowerShell Team为PowerShell构建了完善全新的帮助系统机制。这个全新的机制就是PowerShell的帮助文档信息都是...

2018-03-26 23:33:46 2480

原创 从零开始学PowerShell(6) 获取对象信息

在编程世界里,我们一定听说过面向对象思维,根据面向对象思维我们可以抽象的把现实世界中每一个事物都看成是一个对象,每个对象都包含自己特有的属性和方法。而在PowerShell中任何东西也都是一种对象,我们知道对象含有它的属性和方法等信息。当我们在编写脚本的时候都会想知道我们除了生成的对象外,这个对象还能实现什么功能,什么方法。那如何查看对象的属性等信息呢,使用Get-Member方法与管道符...

2018-03-26 00:41:09 2776

原创 从零开始学PowerShell(5) 自定义格式化信息

我们已经基本了解了大部分在PowerShell中的格式化输出命令的使用,但是我们之前做的内容的格式化也仅仅是针对现有输出的内容做一些排版格式的输出,在某些场景需求下,这样的排版还是显得过于单调。所以今天要讲一下如何自定义格式化信息。这是个很有趣的话题,所以单独放在了一篇文章里讲。PowerShell输出的信息内容其实默认是经过排版的,基本以表单的形式,像下面这样。 为了更好的说明自定义格...

2018-03-19 23:06:25 2465

原创 从零开始学PowerShell(4) 数据的选择、排序与格式化

上一篇我们已经学会了如何通过自定义筛选条件来过滤我们想要的信息,在PowerShell中除了通过自定义筛选条件来过滤信息外,我们还可以直接使用Select-Object命令来选择我们指定的信息栏并用Sort-Object命令对罗列的信息排序。假设,我们有一个小需求场景需要查看所有当前系统里的进程,但条件是进程的Id号大于1000以内的前十个进程信息名,并且Id号需要从大到小排列,该怎么做呢?这...

2018-03-19 22:56:33 4115

原创 从零开始学PowerShell(3) 筛选的力量

在之前的几篇里我们已经学会了如何使用Get-Help命令来查看指定命令的帮助信息,以及如何使用“管道”符将多个命令连接在一起组合使用。今天要说的另一个极为非常有用的命令就是Where-Object。Where-Object它的主要作用是可以自定义过滤条件,并过滤从管道传递来的对象数据。简单的说就是Where-Object命令是用来做过滤用的一个命令,一般置于管道后。举个例子,我们要获得C:...

2018-03-18 23:10:43 4807 4

原创 在非Windows系统中使用PowerShell

既然之前有一篇文章讲到了微软在2018年初正式发布了PowerShell Core 6.0,它的一大特性是可以跨平台运行,那是不是不在跨平台系统上跑一下PowerShell Core 6.0岂不是可惜,今天我们就要看看如何在macOS中使用PowerShell。在使用前,我们必须先要安装PowerShell Core吧,macOS中安装PowerShell Core十分的简单,安装的方式也很多...

2018-03-18 01:24:01 450

原创 微软正式发布PowerShell Core 6.0

在2018年初,微软终于正式发布了PowerShell Core 6.0。可以说PowerShell Core 6.0是全新的PowerShell版本,用官方的话来说它不同以往因为它是建立在跨平台(支持Windows, macOS, Linux),开源并且为异构环境和混合云而生。我相信不少人肯定会有点分不清最早我们用的PowerShell和这个PowerShell Core 6.0有什么区别,...

2018-03-15 13:58:20 5547

原创 从零开始学Windows PowerShell(2)管道的作用

上次介绍的两个入门常用命令虽然简单,但可以说是所有使用PowerShell人员中使用频率最高的几个PowerShell命令,所以了解它们是必须的。今天要讲的“管道”也依然如此,在PowerShell中管道可以说是随处可见,重要性也不言而喻。管道是什么样的呢?它就长这样|。没错,就是一个竖线。它的作用你可以先简单的理解为就是像管道通道一样用来传递我们的PowerShell对象,很好理解吧。那...

2018-03-14 21:13:50 1606

原创 从零开始学Windows PowerShell(1) 初见基础命令

还记得之前我写过一篇文章《新手学习PowerShell可能产生的问题》,其中也做了一个投票调查是有关于多少人希望看到什么类型的PowerShell文章,统计结果出来后显示至少有三分之一的人选择了希望能有一些入门文章。要知道即便PowerShell已经面世至少十年了,市场上有关于PowerShell的资料和书籍也十分丰富,但是依然会有不少朋友不知道从何下手去系统的去学习PowerShell。所...

2018-03-14 21:12:35 11842

WindowsPowerShellTFM

microsoft Windows PowerShell

2009-09-15

系统边栏工具

系统边栏工具

2007-07-13

Winos Search

Winos Search

2007-07-13

本地安全设置

本地安全

2007-07-05

安全策略

安全策略

2007-07-05

安全策略

安全策略

2007-07-05

安全策略

安全策略

2007-07-05

安全策略

安全策略

2007-07-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除