自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jeffery0207的博客

python爱好者,专注python、linux

  • 博客(88)
  • 收藏
  • 关注

原创 jeffery0207博客导航

本帖保持持续更新,一站式导航CSDN jeffery0207大部分博文!Python语法特性python函数详解Python面向对象、魔法方法Python 面向对象编程基础python装饰器详细剖析python描述器深度解析python meataclass详解Python字符串处理标准库python函数式编程之functools、itertools、operator详解、...

2020-01-31 11:50:46 837

原创 python yield关键字全面解析

你是否曾因处理的数据集过大而内存溢出?你是否曾因为处理各种复杂的函数状态而烦恼?It does help!本文聚焦yield generator, 帮助你解锁python进阶技法,写出更优雅的程序!先导概念为了更好的理解本篇推文的内容,读者必须先深刻理解以下三个概念:List comprehension (列表生成式),Generator (生成器),Iterator (迭代器)。List comprehensionList Comprehensions (PEP202),是python.

2022-05-19 09:42:51 888

翻译 R语言进阶 | 程序结构控制

在R语言中有两种程序控制结构:分支结构(choices)和循环结构(loops)。分支结构,比如if()和switch(),可以根据输入(判断条件)的不同选择执行不同的代码块;循环结构,比如for,while 和 repeat,则可以重复执行一段代码块,但往往每次重复都有相应参数的改变。想跳过这一期推文?如果你已经掌握以下知识点👇🏻,Go aheadif 和 ifelse()的区别是什么?当x分别为True, False, NA时,下面代码中y的值为多少?y <- i

2022-05-03 19:30:01 1104

翻译 R语言进阶 | 系统解析向量索引

在上一篇推文《R语言进阶 | 广义向量与属性解析》中,我们详细介绍了R语言中的各种(广义)向量及其内在关联。那么当我们创建了一个向量后,我们如何进行数据索引以便于显示或赋值呢?R语言中的数据索引是非常快速且强大的,熟练掌握后将有效地提高数据分析的效率。如果你要熟练掌握R中的数据索引,务必先内化以下几个概念:数据索引其实包括三部分:被索引对象 (object) 、索引操作符 (operators) 和索引值 (index)。比如提取向量a的部分内容:a[1:3],其中a是被索引对象;[]是索引操作符;

2022-05-03 19:28:54 1851

翻译 R语言进阶 | 广义向量和属性解析

本期推文我们从广义向量出发,从属性的角度,深度解析 R 语言常用数据结构及其内在关联逻辑梳理广义的向量包括两种:atomic vector 和 List (列表),而我们常说的狭义的向量就是指 atomic vector,正如其名字所传达的意思一样,它就像原子一样能通过增加属性从而形成更复杂的数据类型。另外NULL虽然不属于向量,但它常被作为长度为零的向量。下图显示了它们的基本关系。atomic vector又分为四种:logical, integer, double, and characte.

2022-04-19 20:23:00 1532

翻译 R语言进阶 | 变量赋值背后的机制与R语言内存优化

为什么要了解变量赋值?变量赋值牵涉到对象和变量名,理解对象和变量名之间的区别和联系将对你有如下帮助:(1)帮助你更精准预测代码的行为和内存的使用情况;(2)避免代码运行过程中不必要的对象复制,从而加快代码运行的速度;(3)帮助你进一步了解R语言函数式编程的原理。理解绑定(banding)x <- c(1, 2, 3)阅读上面这行代码,我们自然地理解为:”创建一个名为x的对象,其包括元素值1,2和3“。但实际上这种理解是不准确的,我们可以认为这行代码背后做了两件事情:(1)创建一个向量对象,

2022-04-11 19:18:09 870

原创 python垃圾回收 (GC) 机制

Python 能够自动进行内存分配和释放,但了解 python 垃圾回收 (garbage collection, GC) 的工作原理可以帮助你写出更好更快的 Python 程序。Python 使用两种算法进行垃圾回收,分别是引用计数 (Reference Counting) 和分代回收 (Generational garbage collection)。引用计数引用计数,简而言之就是如果没有变量引用某一对象,那么该对象将会被回收。Python 中的每个变量都是对对象的引用,而不是对象本身。例如,赋值语

2022-02-20 15:34:04 8707 2

原创 在jupyter界面误删了jupyter notebook

问题:在jupyter界面误删了jupyter notebook解决方式:查看/home/liunianping/.local/share/Trash/files文件夹下是否存在误删的文件;在误删文件所在文件夹.ipynb_checkpoints/查找文件,文件名可能与被删文件不一样,需要打开文件查看确认,如果是将后缀改为.ipynb即可;...

2022-01-17 19:11:34 1429

原创 R语言稀疏矩阵详解

R语言常用稀疏矩阵解析,包括dgCMatrix、dgTMatrix、dgRMatrix

2022-01-15 11:38:55 11285 2

原创 python文件路径操作及pathlib库

对文件的路径操作是一个非常基础的问题,但也是一个至关重要的问题,优雅的路径操作不仅可以让代码可读性更高;还可以让用户避免很多不必要的麻烦。python中路径操作常用的几种方式重要包括:字符串拼接、os.path、以及python 3.4中新增的面向对象的路径操作库 pathlib。字符串拼接字符串拼接是最原始、最不优雅的路径操作方式,也是很多初学者偏爱的方式,但是强烈推荐使用以下两种更优雅的路径操作方式。因为不推荐字符串拼接,所以下面简要列举一下常见的拼接方式(更多字符串操作方法请见Python字符串处

2021-12-27 09:00:00 2222

原创 python导入机制及importlib模块

文章目录写在篇前import 关键字先导概念namespace & scopeModule & Packagesmodulepackagesregular packagenamespace packageimportlibLoaders & Findersimport hooksimportlib.abcimportlib.resources参考资料写在篇前这篇博客的雏形,严格来讲,在我脑海中浮现已有近一年之久,起源于我之前在写一个python模块并用jupyter notebo

2021-10-05 11:40:25 3974 3

原创 python绘制dotplot

文章目录安装模块导入数据准备写在篇末  R语言不少库都可以方便的画dotplot,但是低频使用R这么多年,我依旧觉得R不是一门真正的编程语言。目前,在python中绘制dotplot貌似没有很轻量、方便的库,因此工作之余写了这个python_dotplot包,方便自己也希望能够方便他人吧。安装可以通过pypi快速安装:pip install python_dotplot该package当然可能存在一定的bug,所以也会处于不断迭代的过程中,版本更新可以在github realease 获得最新信

2021-04-20 10:41:31 3004 3

原创 python subprocess-更优雅的创建子进程

简介如PEP324所言,在任何编程语言中,启动进程都是非常常见的任务,python也是如此,而不正确的启动进程方式会给程序带来很大安全风险。Subprocess模块开发之前,标准库已有大量用于进程创建的接口函数(如os.system、os.spawn*),但是略显混乱使开发者难以抉择,因此Subprocess的目的是打造一个“统一”模块来提供之前进程创建相关函数的功能实现。与之前的相关接口相比,提供了以下增强功能:一个“统一”的模块来提供以前进程创建相关函数的所有功能;跨进程异常优化:子进程中的异常

2021-01-29 21:51:44 2774 2

原创 R语言入门4---R语言流程控制

​ 流程控制语句在任何语言中都是非常重要的,通过流程控制语句编程者能够根据业务逻辑在程序中设计合理的循环、分支,实现程序各种各样强大的功能。一般实现任一算法的控制结构都可以分为顺序结构、分支结构、循环结构及其混合。在R语言中,流程控制语句主要有if else、for、while、switch、repeat等,这些流程控制语句本身在许多语言中都是相似的,最重要的是注意其在不同语言中的语法特性。顺序...

2020-03-13 21:50:17 1445

原创 Python collection模块

​ collections模块主要实现了一些container datatypes(容器类型),作为builtin容器类型dict、list、set和tuple等的一个补充,包括以下新定义的容器类型:类型用途namedtuple()factory function for creating tuple subclasses with named fieldsdeque...

2020-02-29 22:30:49 388

原创 JupyterLab 配置远程python、R环境(与Jupyter兼容)

​  官网如是介绍JupyterLab: JupyterLab is the next-generation web-based user interface for Project Jupyter。可见,Jupyter Lab是Jupyter的下一代计划,其包含了Jupyter Notebook所有功能,可作为一种基于web的集成开发环境,你可以使用它编写notebook、操作终端、编辑mark...

2019-12-07 22:49:42 5930 2

原创 python函数式编程之functools、itertools、operator详解

文章目录写在篇前itertools无穷迭代器最短停止迭代器排列组合迭代器operator基本运算符函数属性查询functoolspartial & partialmethodcmp_to_key@total_ordering@lru_cache@singledispatch附录可变对象 & 不可变对象闭包reference写在篇前  这篇博客主要介绍什么是函数式编程、在Pyth...

2019-10-21 09:18:14 1311

原创 python hashlib 哈希算法

写在篇前​ 哈希加密算法应用非常广泛,包括数字签名,身份验证,操作检测,指纹,校验和(消息完整性检查),哈希表,密码存储等。在密码学中,好的哈希算法应该满足以下两个条件:一是无法从哈希值解密原始消息;二是,更改原始消息的一个字节,哈希消息会发生非常大的变化。本篇博客主要探讨一下python标准库hashlib的使用,最后介绍一下另外两个相关的 标准库hmac和base64。​ 哈希函数以可...

2019-09-28 23:04:31 2369

原创 python scipy 稀疏矩阵详解

文章目录稀疏矩阵格式coo_matrixcsr_matrixcsc_matrixlil_matrixdok_matrixdia_matrixbsr_matrix实用函数经验总结稀疏矩阵格式coo_matrix  coo_matrix是最简单的稀疏矩阵存储方式,采用三元组(row, col, data)(或称为ijv format)的形式来存储矩阵中非零元素的信息。在实际使用中,一般coo_m...

2019-08-25 16:40:38 40315 20

原创 万字长文深度解析python 单元测试

文章目录unittest基本概念基本用法命令行操作组织测试用例跳过测试&预期错误subTestunittest小结doctest先谈pydocdoctest与unittestMock初步理解Mock object使用Mock object定制化Mock objectreturn_valueside_effect配置Mockpatchas a Decoratoras a Context Ma...

2019-08-10 21:15:58 716

原创 python Logging日志记录模块详解

写在篇前  logging是Python的一个标准库,其中定义的函数和类为应用程序和库的开发实现了一个灵活的事件日志系统。Python logging 的配置由四个部分组成:Logger、Handlers、Filter、Formatter。本篇博客将依次介绍这四个主要部分以及logging的基本应用。  在开始之前,我们有必要先了解一下,什么时候我们才有必要使用logging模块,什么时候抛出...

2019-07-14 09:18:04 9708 8

原创 python Typing模块-类型注解

写在篇前  typing 是python3.5中开始新增的专用于类型注解(type hints)的模块,为python程序提供静态类型检查,如下面的greeting函数规定了参数name的类型是str,返回值的类型也是str。def greeting(name: str) -> str: return 'Hello ' + name  在实践中,该模块常用的类型有 Any, ...

2019-06-26 13:57:31 17489 14

原创 python meataclass详解

写在篇前  这篇文章主要介绍python3中metaclass(元类)的概念及其应用。简而言之,元类就是创建类的东西,而type就是Python的内建元类。如此一来,在python中,先要定义元类,然后利用元类创建类,最后根据类创建实例。一切皆为对象  相信任何一个python爱好者,从业者都听过"在python中,一切皆为对象"这句话,但为什么探讨元类前要先抛出这个话题呢?因为我觉得只有当...

2019-06-16 12:04:58 694

原创 R语言入门3---R语言六大基本数据结构

文章目录写在篇前向量矩阵数组因子数据框构建数据框观察数据行名、列名获取行数据、列数据添加列数据类型转换子集查询数据合并列表其他写在篇前  本篇主要总结R语言中六大基本数据结构的基本概念和常用操作,包括向量(Vector)、矩阵(Matrix)、数组(Array)、因子(Factor)、数据框(Data.Frame)、列表(List)。这六大基本数据结构和R语言流程控制是我们编写R脚本的基石,再...

2019-05-26 23:32:06 7059

原创 python描述器深度解析

写在篇前  在之前的博客Python面向对象、魔法方法中曾简单提到魔法方法__get__、__set__、__delete__,但只给出一个例子,这篇文章将对它做一个更详细的总结,因为这三个魔法函数表征着一个专业术语描述器。什么是描述器  简而言之,如果一个类中定义了__get__、__set__、__delete__中的任意一个,这个类的实例就可以叫做一个描述器,其功能强大,应用广泛,它可...

2019-04-09 20:35:23 1045

原创 python装饰器详细剖析

文章目录函数装饰器基本函数装饰器传参函数装饰器类装饰器基本类装饰器传参类装饰器装饰器执行顺序内置装饰器@abstractmethod@property@classmethod@staticmethod内置装饰器小结装饰器属性还原写在篇后  装饰器函数其实是这样一个接口约束,它必须接受一个 callable 对象作为参数,然后返回一个 callable 对象,其作用就是为已经存在的函数或对象添加额...

2019-04-05 13:34:50 719

原创 Python面向对象、魔法方法

文章目录写在篇前封装继承单继承Mixin抽象多态特殊方法&amp;属性特殊属性魔法方法辅助知识OOP实用函数迭代器生成器写在篇前  OOP(Object Oriented Programming),即面向对象的程序设计,不同于传统的面向过程的程序设计,它大大地降低了软件开发的难度,使编程就像搭积木一样简单,是当今编程以及模式设计一股势不可挡的潮流。OOP达到了软件工程的三个主要目标:重用性、灵...

2019-03-04 13:47:01 1234

原创 python函数详解

写在篇前  函数能提高应用的模块性,和代码的重复利用率,是编程必须具备的基本抽象能力。python函数更是奇妙灵活,与很多特性值得探讨,本篇文章就来详细看看python 函数那些巧妙之处。首先,在篇前简单说说python函数的形式。比如说我们要实现一个函数:计算一个数m的n次方,那么函数可以定义如下:def exponentiation(m, n): return m^n# def...

2019-02-22 20:33:59 1635

原创 Shell脚本编程详解

文章目录前置知识shell变量环境变量本地变量shell脚本执行方式基本语法通配符命令代换算数代换转义字符字符串符号逻辑运算脚本语法条件测试流程控制位置参数函数脚本调试实例开机自动脚本登陆自动脚本注意事项前置知识shell变量  按照惯例,Shell变量由全大写字母加下划线组成,有两种类型的Shell变量:环境变量  环境变量可以从父进程传给子进程,因此Shell进程的环境变量可以从当前...

2019-01-19 17:32:37 961

原创 Tensorflow Serving部署tensorflow、keras模型详解

写在篇前  本篇介绍如何使用Tensorflow Serving组件导出训练好的Tensorflow模型,并使用标准tensorflow model server来部署深度学习模型预测服务。tensorflow model server主要负责管理新的导出模型并运行gRPC服务以方便终端用户调用。下面的代码都可以在我的实战项目github CaptchaIdentifier或者jefferyUs...

2019-01-08 13:56:53 20471 14

原创 Docker详解

文章目录写在篇前基本概念Docker-EngineDocker三要素Docker-registriesUnionFS常用命令帮助命令镜像命令容器命令容器数据卷镜像发布镜像加速安装与卸载高级知识Swarmservicestack容器网络Legacy LinkingBrige NetworkDockerFile写在篇前  Docker是应用程序developing, shipping, 和 run...

2019-01-01 21:03:04 3100

原创 Git详解

文章目录写在篇前常用命令配置git创建代码库推送代码删除文件修改管理版本回退分支管理解决冲突标签管理其他重点登录方式关联远程库团队协作分叉直线化.gitignore.gitkeep注意事项写在篇后写在篇前  Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。发明人就是大名鼎鼎的Linus ,发明初衷为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。...

2018-12-03 19:16:30 1807

原创 实用Linux命令

  收集的一些可以提高工作效率的linux命令,适合工作时候查询使用。保持更新~linux系统信息查询系统信息uname -a #查看内核/操作系统/CPU信息head -n 1 /etc/issue #查看操作系统版本cat /proc/cpuinfo #查看CPU信息hostname #查看计算机名lspci -tv #列出所有PCI设备lsusb -tv #列出所有US...

2018-11-29 20:00:52 572

原创 matplotlib(六)三维作图

文章目录写在篇前三维绘图函数LinePlotScatterPlotWireframePlotSurfacePlotContourPlotFilledContourPlotPolygonPlotBarPlotText写在篇后写在篇前  matplotlib也支持三维作图,但是相对于matlab来讲,感觉功能更弱。当然话说回来,三维作图用的场景相对也更少,所以呢,有一定的知识储备就够了。matpl...

2018-11-25 21:41:39 7183 1

原创 【机器学习】NMF(非负矩阵分解)

写在篇前  本篇文章主要介绍NMF算法原理以及使用sklearn中的封装方法实现该算法,最重要的是理解要NMF矩阵分解的实际意义,将其运用到自己的数据分析中!理论概述  NMF(Non-negative matrix factorization),即对于任意给定的一个非负矩阵V,其能够寻找到一个非负矩阵W和一个非负矩阵H,满足条件V=W*H,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。...

2018-11-22 20:19:29 49268 5

原创 【机器学习】层次聚类

写在篇前  层次聚类(hierarchical clustering)是一种通用的聚类算法之一,它通过自下而上合并或自上而下拆分来构建嵌套聚类。这种簇的层次结构表示为树(或树状图),树的根汇聚所有样本,树的叶子是各个样本。本篇博客会简述层次聚类的原理,重点是使用sklearn、scipy、seaborn等实现层次聚类并可视化结果。原理简述  看到一篇详细讲层次聚类原理的文章层次聚类算法的原理...

2018-11-18 18:20:56 2843

原创 【机器学习】Kmeans聚类

写在篇前  Kmeans算法是一种经典的聚类算法,属于无监督学习的范畴。所谓聚类,即指对于给定的一个样本集,按照样本之间的距离大小,将样本集划分为K个簇,且让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。优点:原理简单速度快对大数据集有比较好的伸缩性缺点:需要指定聚类数量K对异常值敏感对初始值敏感原理概述算法流程                        ...

2018-11-11 19:26:18 1906

原创 【机器学习】降维技术-PCA

写在篇前  PCA即主成分分析技术,又称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标,其主要目的是为了减少数据的维数,而同时保持数据集最多的信息。这篇文章主要是整理PCA算法的理论、思想,然后通过Scikit-learn中的例子讲解PCA的使用。数学基础  首先,我们需要了解几个重要的数学概念,其中均值、标准差、方差协方差应该是比较好理解的,主要是要注意对特征向量和特征值的...

2018-11-07 17:21:32 1216 1

原创 Anaconda常用命令

Anaconda常用命令  这个仅仅是一个代码列表,方便查询,保持持续更新# 包管理conda install packagenameconda install packagename =1.10conda installl numpy pandas scipyconda upgrade --allconda remove packagename conda search pac...

2018-10-31 16:10:20 803

原创 【Numpy学习记录】np.cov详解

写在篇前  在概率论和统计学中,协方差用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。其定义的数学形式是:Cov(X,Y)=E[(X−E(X))(Y−E(Y))]=E[XY]−E[X]E[Y]Cov(X,Y)=E[(X-E(X))(Y-E(Y))] =E[XY]-E[X]E[Y]Cov(X,Y)=E[(X−E(X))(Y−E(Y))]=E[XY]−E[X]E[...

2018-10-12 20:27:20 41081 7

空空如也

空空如也

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

TA关注的人

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