自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 论坛 (1)
  • 收藏
  • 关注

原创 致 Python 初学者

欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你

2019-11-13 18:16:52 333648 318

原创 wxPython:python首选的GUI库

跨平台的GUI工具库,较为有名的当属GTK+、Qt 和 wxWidgets 了。GTK+是C实现的,由于C语言本身不支持OOP,因而GTK+上手相当困难,写起来也较为复杂艰涩。Qt 和 wxWidgets 则是C++实现的,各自拥有庞大的用户群体。虽然我喜欢wxWidgets,但还是尽可能客观地搜集了关于Qt 和 wxWidgets 的对比评价。

2019-10-31 14:42:38 87649 88

原创 写给 python 程序员的 OpenGL 教程

OpenGL 是 Open Graphics Library 的简写,意为“开放式图形库”,是用于渲染 2D、3D 矢量图形的跨语言、跨平台的应用程序编程接口(API)。OpenGL 不是一个独立的平台,因此,它需要借助于一种编程语言才能被使用。C / C++ / python / java 都可以很好支持 OpengGL,我当然习惯性选择 python 语言。如果读者是 python 程序员,并且了解 numpy,接下来的阅读应该不会有任何障碍;否则,我建议先花半小时学习一下 python 语言。

2019-10-31 14:42:29 43672 24

原创 如果不懂 numpy,请别说自己是 python 程序员

大约七八年前,我曾经用 pyOpenGL 画过地球磁层顶的三维模型,这段代码至今仍然还运行在某科研机构里。在那之前,我一直觉得自己是一个合(you)格(xiu)的 python 程序员,似乎无所不能。但磁层顶模型的显示效果令我沮丧——尽管这个模型只有十几万个顶点,拖拽、缩放却非常卡顿。最终,我把顶点数量删减到两万左右,以兼顾模型质量和响应速度,才勉强交付了这个任务。从此我开始怀疑 python 的性能,甚至一度怀疑 python 是否还是我的首选工具。

2019-02-17 14:51:20 27338 23

原创 数学建模三剑客MSN

不管是不是巴萨的球迷,只要你喜欢足球,就一定听说过梅西(Messi)、苏亚雷斯(Suarez)和内马尔(Neymar)这个MSN组合。在众多的数学建模辅助工具中,也有一个犀利无比的MSN组合,他们就是python麾下大名鼎鼎的 Matplotlib + Scipy + Numpy三剑客。

2016-09-06 13:41:37 31526 12

原创 照猫画虎,分分钟学会的Matplotlib技巧:反转轴、绘制双轴和定制刻度

作为Python生态中应用最广泛的绘图库,Matplotlib用起来非常简单,也很容易上手。不过有些细节想要做得尽善尽美,就需要仔细阅读它的文档了。对于初学者来说,反转坐标轴、绘制双轴(将两个动态范围不同的数据绘制在一张图上,分别使用两个不同的坐标轴)有一定难度,改变坐标轴刻度的样式或内容,更是无从下手。

2021-04-09 11:26:30 113

原创 聊聊机器学习中的那些花儿:标准化、归一化、正则化、离散化和白化

机器学习的本质是从数据集中发现数据内在的特征,而数据的内在特征往往被样本的规格、分布范围等外在特征所掩盖。数据预处理正是为了最大限度地帮助机器学习模型或算法找到数据内在特征所做的一系列操作,这些操作主要包括标准化、归一化、正则化、离散化和白化等。

2021-04-02 14:46:07 4707 4

原创 Python函数的参数类型和使用技巧

Python语言支持灵活多样的函数参数,恰当地使用各种形式的参数,会增强代码的复用性和可读性,让代码更加简洁精炼。不过,事物总有其两面性,正因为函数参数的灵活多样,反倒给初学者带了一些困惑。本文从实际需求出发,由浅入深,配合不同的应用场景,渐次引出位置参数、默认参数、可变参数、关键字参数的概念,展示这些参数的使用方法和技巧。

2021-03-29 13:39:49 5614 5

原创 怎么用Python计算地球上任意两个用经纬度表示的点的弧面距离?

这是来自知乎上的问题。问我的时候,恰好我在写一个和向量计算相关的文章,于是灵光乍现,顺手写了这样一个答案。该算法未经严格验证,请谨慎参考。

2021-03-16 14:50:11 571 1

转载 深挖 AI 价值与温度,AETA 地震预测 AI 算法大赛开启

此次大赛,赛事组委会官方提供了高达 30 万元的奖金作为激励,并且为参赛选手提供了 91 种特征值和对应时间区间目标区域内的地震目录作为训练数据,让此次大赛的价值更上一层楼。

2021-03-15 15:38:31 527

原创 喜欢书法的程序员看过来:15行代码抓取兰亭序全文单字高清字帖

近日网购上瘾,狂买至肉疼,最后连一本打折后28块钱的兰亭序字帖也不舍得下单了。犹豫之间,发现了一个不错的网站——[书法欣赏](http://www.yac8.com/),名家名帖尽收于此。令人惊喜的是,这个网站居然提供了兰亭序全文单字高清字帖,网址见下文中的代码。

2021-03-08 15:15:50 5936 7

原创 Python的random内置模块产生的随机数真的随机吗?

先说结论:不止Python的random内置模块,还包括numpy的随机抽样子模块random,以及其他编程语言的随机数生成器,例如java.Math.Random()函数,所有这些随机数生成器生成的随机数都不是真正的随机数,而是伪随机数。

2021-03-04 17:43:18 729 4

原创 元宵节就要到了,花灯要不要来一盏?3D的那种

说起元宵节,各位有没有觉得这是咱们中国人最浪漫的节日呢?国人向来拘谨古板,一年到头都是板着脸过日子,唯有元宵节这天可以纵情豪放一把。东风夜放花千树,宝马雕车香满路,火树银花霓虹闪烁,豪车遍地美女如云。细品,你甚至都能嗅到香奈儿的味道!月上柳梢头,人约黄昏后,这又是何等的浪漫!比起烛光晚宴、鲜花加持,这份浪漫更显纯真。晚至明清,民间元宵节的喜庆气氛,堪比西班牙的奔牛节、巴西的狂欢节、泰国的泼水节。

2021-02-25 14:44:04 25832 65

原创 Python四六级考试,快来测试一下自己的编程水平吧

不要当真,这是一套模仿英语四六考试的Python编程能力自测题,完全基于Python基础语法和标准模块,仅最后一题,用到了NumPy模块。参考答案附于文末,读者可自行核对。如果得分超过60分,相当于英语四级水平;得分超过80分,相当于英语六级水平。

2021-02-09 14:53:36 2874 7

原创 理解了这三点,才敢说自己会写Python代码

某同学应聘Python岗位被录用。上班第一天,Leader吩咐他写一个获取次日日期信息的函数。该同学信心满满地写下了这样一段代码, 然后就没有然后了。当然,这只是一个段子,相信没有Python程序员真的会写出这样的代码。不过,很多时候,我们写出来的代码尽管功能满足需求,效率也还说得过去,但可读性较差,且难以维护,和人们通常所说的简洁优美相去甚远。

2021-02-04 16:59:19 7087 26

原创 无所不能的NumPy:我用它弹奏出了CD音质的吉他名曲“爱的罗曼史”

在Python的世界里,没有一个模块能够像NumPy那样支撑并影响着整个生态系统:从科学计算到数据处理,从视觉识别到机器学习,从神经网络到虚拟现实,处处都有它的身影。无论是OpenCV/OpenGL,还是Pandas/Matplotlib,抑或是Scikti-learn/TensorFlow/Keras/Theano/PyTorch,无不依赖于NumPy,尤其是依赖它所创造的数组对象(numpy.ndarray)。

2021-01-29 10:52:11 4368 8

原创 使用Python如何快速打开一个百万行级别的超大Excel文件?

知乎上有同学求助说,当他试图打开一个20M左右的excel文件时,无论是使用pandas的read_excel,还是直接使用xlrd或者openpyxl模块,速度都慢到无法忍受的程度,耗时大约1分钟左右。真的会这样吗?

2021-01-22 15:14:31 1763 2

原创 如何用Python的标准print函数打印一个彩色的围棋局面?

尽管print函数是初学者最先接触到的第一个Python标准函数,但很多人并没有真正了解它。我曾经在《用 print() 函数实现的三个特效》一文中展示了print函数的一些实用技巧,受到读者热捧。今天,我再给大家介绍print函数的另一个技巧:打印彩色文字和图案,并在最后定义一个打印围棋局面的函数,可以打印出下图这样的效果。

2021-01-08 15:55:27 7782 5

原创 PyOpenCV实战:借助视觉识别技术实现围棋终局的胜负判定

学习一种技能,最好的方式就是与实际应用相结合,也就是人们常说的学以致用。很多的Python初学者在学完基础语法、基本技能之后,都会感到迷茫,主要原因就是不知道自己的一身本领可以用在何处,接下来又该向哪个方向发展。如果你恰好处在这样一个阶段,又对视觉识别技术感兴趣的话,不妨拿这个项目来练练手。

2021-01-08 14:50:52 2734 4

原创 如何用Python判断一个文件是否被占用?

今天有同学问,用os模块的access()能否判断一个文件是否被占用?直觉上,这是行不通的,因为access()返回的是文件的读写属性。后来,群里有同学建议说,不妨用try尝试着open文件,如果成功,表示文件没有被占用,如果抛出异常,则表示文件被占用。果真如此吗?还是用代码验证一下吧。

2020-12-15 11:17:46 9731 16

原创 Python进程、线程和协程实战指归

前些日子写过几篇关于线程和进程的文章,概要介绍了Python内置的线程模块(threading)和进程模块(multiprocessing)的使用方法,侧重点是线程间同步和进程间同步。随后,陆续收到了不少读者的私信,咨询进程、线程和协程的使用方法,进程、线程和协程分别适用于何种应用场景,以及混合使用进程、线程和协程的技巧。

2020-12-09 21:01:13 6648 9

原创 细说NumPy数组的四种乘法,带你走进向量运算的奇妙世界

当孔乙己说回字有四样写法的时候,相信各位都是这样的表情吧?但是,如果孔乙己说NumPy数组有四种乘法的时候,各位大约就是这样的表情了吧?实际上,NumPy数组乘法远不止四种。为了在写作和阅读时保持清晰的逻辑和清醒的头脑,本文仅对四种最常见的数组乘法给出详细说明,并用一道数学题来演示向量点乘和叉乘的用法。

2020-12-07 17:12:11 1914 1

原创 二十年前,闭包爱上了语法糖,从此Python多了一个叫做装饰器的小伙伴

二十年前,大约也是这个时节,闭包(Closure),一个帅气的小伙子,无可救药地爱上了长相甜美的语法糖(Syntactic Sugar)姑娘。结果呢,后面的故事你们就都知道了,2004年11月30号,Python2.4为他们举行了隆重的婚礼,闭包和语法糖的爱情结晶,小帅哥装饰器作为花童,也参加了他们的婚礼。

2020-11-26 15:14:57 2577

原创 从仁慈的独裁者到微软打工人,Python之父和Python将走向何方?

Python语言本身以及众多的使用者和支持者们似乎先天存在着一种深深的自卑和焦虑,对于Pyton未来发展的不确定性表现出异乎寻常的关注。即使在11月初,业界权威的TIOBE编程语言排行宣布20年来Python首次超越Java成第二最受欢迎的编程语言(第一位是C),也未能彻底打消他们的自卑和焦虑。尽管TIOBE官方使用了unstoppable(势不可挡)一词来形容Python的这次上位夺权,但是Python的拥趸却表现得极为冷静。

2020-11-24 10:05:20 21027 36

原创 魔幻离现实仅一步之遥:细说Python的循环调用、循环引用和循环导入

小时候,常被一些可笑的问题困扰——尽管成年以后面临的疑惑更多,但似乎是因为已经适应了在迷茫中前行,对于未解的问题反倒是失去了那种急于想知道答案的迫切感。比如,站在两面相对的镜子中间,会看到无数个自己吗?对于少时的我,这的确是一个非常魔幻的问题,直到理解了光量子能量衰减,才算找到了答案。

2020-11-20 14:56:01 9906 18

原创 写在《Python高手修炼之道》发行之前:选择一本好书,即是少走弯路

一门编程语言,总有一些独一无二的特质,不会随着语言的演变而改变,我们姑且称其为语言的DNA。一本介绍编程语言的书,如果能够捕捉到这门语言的DNA,并准确传达给读者,那就称得上是一本好书。选择一本好书,可以少走很多弯路。

2020-11-05 15:08:52 3997 5

原创 理解Python闭包,这应该是最好的例子

作为一种编程语言特性,闭包得到了很多编程语言的支持,Python也不例外。所谓闭包,在Python中指的是携带一个或多个自由量的函数。闭包函数的自由量不是函数的参数,而是生成这个函数时的环境变量。一旦闭包生成了,自由变量会绑定在函数上,即使离开创造它的环境,自由量依旧有效。

2020-11-04 16:19:43 19822 13

原创 危险的转变:Python正在从简明转向臃肿,从实用转向媚俗

简单和优雅,是Python创始人吉多 · 范罗苏姆(龟叔)开立山门之时为Python确立的哲学理念。现在,Pyton的发展显然已经背离了这一原则:不管有用无用,但凡别家有的,一概收入;不管是否适合,只要能充门面,悉数拿来。此情势正如当年Pandas之父韦斯·麦金尼面对Pandas的快速扩张时所表达出的无奈:“Pandas正在背离我最初所期望的简洁和易用,变得越来越臃肿和不可控制。”

2020-10-24 08:04:24 26596 61

原创 浅谈Python中类文件对象的使用

所谓类文件对象(file-like object),简单说就是类似文件对象的对象,至少要具备read()和write()两个方法。由于磁盘文件的写入和读出速度远远小于内存的读写速度,当我们使用文件作为两个连续的处理过程的数据交换形式时,通常会选择使用类文件对象。

2020-10-12 11:17:03 4694

原创 复合条件下的字典排序

知乎上有人说,Python3.6以后字典有序且更高效了。群里有同学推荐了这篇文章给我看,并咨询字典排序的问题。大致浏览了一下,我当即表示不能认同这个说法。这篇文章的作者,应该是一位资深的专业人士,对于Python解释器如何实现字典存储和检索有着深刻地理解。但他犯了一明显的常识性错误:在逻辑上,字典是数据的无序集合,仅依赖于键检索。我们说字典是无序,不是指字典在物理实体上实现的时候真的无序,而是指它的顺序对用户而言没有明确的界定,不能作为数据的特性使用。

2020-10-09 15:15:02 5009 1

原创 十分钟玩转3D绘图:WxGL完全手册

WxGL是一个基于PyOpenGL的三维数据可视化库,以wx为显示后端,提供Matplotlib风格的交互式应用模式,同时,也可以和wxPython无缝结合,在wx的窗体上绘制三维模型。从V0.6.2开始,WxGL新增了交互式绘图子模块wxplot,提供类似Matplotlib风格的2D/3D绘图函数。如果熟悉NumPy和Matplotlib的话,只需要几分钟时间就可以学会使用WxGL的交互式绘图。

2020-10-08 08:29:41 17349 49

原创 Python非单向递归函数如何返回全部结果?这个经典的背包问题给出了答案

递归( recursion)是一种神奇的编程技巧,可以大幅简化代码,使之看起来更加简洁。然而递归设计却非常抽象,不容易掌握。通常,我们都是自上而下的思考问题, 递归则是自下而上的解决问题——这就是递归看起来不够直观的原因。

2020-08-27 18:09:47 5478 1

原创 七夕节,我用Python写了一个婚介模型

先声明一下:本文纯属七夕应景娱乐之作。如果有人因为遵循本模型提出的择偶理论而导致失恋或单身,除了同情,我不能补偿更多。在中国的传统节日里,七夕可能是起源最神秘、内涵最深刻的一个了。当然,这不是本文的重点,我们的核心问题是:在七夕这个特有纪念意义的日子,你真的想好了要向TA表白吗?TA真的是你唯一正确的选择吗?这个婚介模型,也许对你有一些启发。

2020-08-25 11:36:42 9037 7

原创 用了十几年才想明白:Python的精髓居然是方括号、花括号和圆括号!

和其他编程语言相比,什么才是Python独一无二的特色呢?很多程序员会说,缩进。的确,缩进是Python语言的标志性特点,但这只是外在的、形式上的。从语言特性层面讲,Python的特点是什么呢?我尝试着在知乎上搜索了一下,最具代表性的答案分别是语法简洁、简单易学、代码高效、功能强大等四项。仔细品味这四项,我还是觉得,这是Python语言表现出来的使用效果或用户感受,仍然不是语言特性层面的特色。

2020-08-15 18:13:46 20802 25

原创 不要对链式索引赋值!趟过了这个坑,才能真正迈入Pandas高手之列

实话实说,我一向不太喜欢Pandas,因为它的功能实在太过强大了,想要熟练地驾驭它,对于我这样的中老年人来说,学习成本偏高。不过,对于接受能力超强的年轻人而言,Pandas确实是数据处理方面不可或缺的利器,我的子侄辈中就有多人喜欢使用。正是因为他们在Pandas的使用过程中,不断地向我咨询问题,我在帮他们解决问题的过程中,也逐渐熟悉了Pandas。

2020-08-03 18:06:08 6412 1

原创 如何提高Python编程能力?不妨试试这个经典的24点问题

暑假期间,办公室里经常会出现因无人看护而不得不跟随爸爸妈妈来上班的小朋友。如果不忙的话,我会陪他们一起玩,他们也都很喜欢和我玩。我们都喜欢玩数字游戏。这不,有位小朋友给我出了一道难题:三个5和一个1,只用加减乘除四则运算,每个数字只能且必须使用一次,如何让结果等于24?

2020-07-31 11:26:38 14055 10

原创 从Python对象的内建属性和方法谈Python的自省(Introspection)和反射机制(Reflection)

对于dir()这个Python的内置函数,Python进阶群里的小伙伴们一定不陌生。我不止一次地介绍过这个函数。每当想要了解一个类或类实例包含了什么属性和方法时,我都会求助于这个函数。读到这里,一定会有很多小伙伴会说,我的PyCharm(也可能是VSCode或者其他什么)也会告诉我,当前的对象有什么属性和方法,还是自动显示的,不需要我动手。没错,IDE的确为我们提供了很多便利,但是,你有没有想过IDE是如何实现这些功能的呢?假如你的任务就是设计一款类似的IDE,你真的不要深入理解Python内在的机制吗?

2020-07-27 18:34:54 6337 2

原创 LaTex数学公式转图片,不依赖在线服务,真正Python实现

下午安装了一个pylatex模块,打算将LaTex语法描述的数学公式转为图片。磕磕绊绊读了半天文档,发现pylatex属于重型武器,写起来不够简洁。网上搜了一下,CSDN上现成的Python代码,只是不免费,要11个C币。摸摸兜里,还有些散碎银子,就顺手买了一个。下载之后,一读源码,居然只是封装了一个http请求,图片是在线生成的!这简直就是抢劫啊,太没有职业道德了!

2020-06-29 17:59:19 7080 4

原创 作为Python程序员,你真的会用max()和min()函数吗?

在Python的七十多个内置函数中,max()和min()是比较常用的两个,用来查找一组数据中的最大值和最小值。这两个函数看似简单,实则暗藏了很多意想不到的功能,尤其是key参数,更为这两个函数增加了类似map()函数的功能。如果应用在代码中,必定产生鬼斧神工、匪夷所思的感觉,令人叹为观止!

2020-06-23 15:22:57 6357 2

原创 一篇短文,尽除沉疴,彻底破解正则恐惧症!
原力计划

正则表达式的规则之艰深晦涩,足令初学者望而却步。其实,只要理解了基本概念,稍微归纳一下知识点,掌握并熟练应用正则表达式,也不是什么难事儿,大约三十分钟就可以做到。我们可以把正则表达式的学习分成两部分:第一,如何写正则表达式?第二,怎么用正则表达式?

2020-06-01 11:35:20 6567 1

空空如也

天元浪子的留言板

发表于 2020-01-02 最后回复 2020-06-10

空空如也

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

TA关注的人 TA的粉丝

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