自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(148)
  • 论坛 (1)
  • 问答 (1)
  • 收藏
  • 关注

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

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

2020-11-05 15:08:52 5484 8

原创 致 Python 初学者

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

2019-11-13 18:16:52 343542 322

原创 wxPython:python首选的GUI库

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

2019-10-31 14:42:38 93160 90

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

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

2019-02-17 14:51:20 28541 25

原创 数学建模三剑客MSN

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

2016-09-06 13:41:37 32757 13

原创 这么漂亮的图画,竟然是用NumPy画出来的?请跟我来,10行代码玩转NumPy!

NumPy也可以画图吗?当然!NumPy不仅可以画,还可以画得更好、画得更快!比如下面这幅画,只需要10行代码就可以画出来。若能整明白这10行代码,就意味着叩开了NumPy的大门。请打开你的Python IDLE,跟随我的脚步,一起来体验一下交互式编程的乐趣吧,看看如何用NumPy画图,以及用NumPy可以画出什么样的图画来。

2021-06-18 15:08:15 2542 12

原创 一个看似初级的Python小问题,高手也难保不掉进坑里

昨晚有同学问了一个非常有意思的问题。问题本身很简单,却包含了初学者不易理解、编码实践中又处处可见的几个知识点。如果对这些知识点理解有偏差,即便是经验丰富的Python程序员,稍不留神也会掉进坑里。

2021-06-11 11:24:35 10384 44

原创 21句话入门机器学习

这是一篇关于机器学习工具包Scikit-learn的入门级读物。对于程序员来说,机器学习的重要性毋庸赘言。也许你还没有开始,也许曾经失败过,都没有关系,你将在这里找到或者重拾自信。只要粗通Python,略知NumPy,认真读完这21句话,逐行敲完示例代码,就可以由此进入自由的王国。

2021-05-26 14:53:01 7194 31

原创 Python代码中的数学之美:从自由落体到爬虫悖论,十分钟开启数学思维

数学思维,就是用数学的方式去解决问题,就象吃饭用筷子、喝水用杯子一样,自然而然又理所当然。数学思维并非知识的积累,而是一种由特定思维习惯蕴育而成的能力——这种特定习惯的养成,往往是从解决看似简单的问题开始。本文正是从最简单的自由落体运动抽象出数学分析的一般性原理,进而用来回答蠕虫悖论问题。即使对数学抱有恐惧心理的同学,若能静下心来花上十分钟阅读一遍,也一定可以从中体会到数学之美以及数学分析这个工具的威力。

2021-05-09 17:25:44 4636 26

原创 Python代码中的数学之美:用牛顿逼近法计算2的算术平方根

编程的核心是算法,而算法的核心是数学——单从这一点上讲,编程与数学可谓关系密切。编程所需要的很多能力和数学是相通的,比如逻辑思维、抽象能力等。编程可以帮助程序员更好地理解数学,将复杂的数学可视化,也可以作为解决数学问题的工具,更能强化数学能力。本文作为一个系列的开篇之作,尝试站在程序员的角度,用程序员的方式去理解数学王国的经典概念。

2021-05-06 17:22:17 6958 17

原创 谁说Python慢来着?不用Python,这个问题难倒了无数的程序员

围棋是全世界最古老的棋种(没有之一),也是古代哲学思想和中国传统文化的物质载体。小小纹枰,不过一尺见方,竟蕴藏着万千气象,着实令人为之着迷。少年时代的我,曾经有一段时间醉心于围棋。标准的围棋盘由横竖各19道线组成网格,共有361个交叉点,每个交叉点上有白子、黑子和无子等三种可能的状态。那么问题来了:围棋总共有多少种不同的局面呢?

2021-04-29 15:16:26 9720 29

原创 Python向左,数学向右:梅森素数

暮色苍茫,一辆双门版的福特雷鸟在杰姆斯山的森林公路上飞驰,车灯照亮了道路两侧的云杉树。作为对我协助绘制乌拉姆素数分布图的回报,乌拉姆今晚开车载我去城里的酒吧小酌。

2021-04-27 17:13:30 3069 9

原创 Python向左,数学向右:乌拉姆的素数研究

我是一只猫。听起来有点惊悚,但这是千真万确的事实。那一年——这样说,并不一定意味着一个历史故事的开始,因为我没有过去和将来的概念。我可以在时间维度上任意移动,就像从东走到西或者从西走到东那样自然。

2021-04-22 15:26:58 9615 40

原创 为什么1.01*1.01*1.01=1.030301,而1.01**3=1.0303010000000001?

今天CSDN的问答栏目中,有同学提出了一个很有意思的问题:为什么3个1.01直接相乘的结果和1.01的3次方不一样呢?

2021-04-22 10:20:23 6647 2

原创 从Python到NumPy,细说最接近人类思维的in操作

在Python语言中,in是一个使用频率非常高的操作符,用于判断对象是否位于字符串、元组、列表、集合或字典中。in操作和人的思维方式高度吻合,写起来近乎于自然语言,充分体现了Python的哲学理念。有趣的是,除了R、javascript、SQL外,包括C/C++在内的主流语言几乎都不支持in操作。这或许可以解释为什么Python语言被认为是最容易学习的编程语言。

2021-04-20 15:30:52 6809 23

原创 天空盒里放风筝,OpenGL就这么任性:想怎么放,就怎么放!

打开Python的IDLE,经过一番尝试,竟然轻松在一片辽阔的草原上放飞了几只风筝。风筝们迎风飘动,长长的风筝线像悬链一样跟着摆动。拖动鼠标,还可以从不同的角度、距离欣赏,恍若置身于大草原上。如果觉得好玩,就跟我一起到草原放风筝吧。先说好了,你可以搭我的便车,食宿请自理。不多说了,快上车!

2021-04-14 15:05:44 4355 13

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

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

2021-04-09 11:26:30 6027 6

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

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

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

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

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

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

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

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

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

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

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

2021-03-15 15:38:31 1794

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

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

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

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

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

2021-03-04 17:43:18 2165 5

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

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

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

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

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

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

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

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

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

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

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

2021-01-29 10:52:11 5723 9

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

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

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

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

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

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

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

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

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

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

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

2020-12-15 11:17:46 11198 17

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

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

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

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

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

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

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

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

2020-11-26 15:14:57 3840

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2020-10-12 11:17:03 5993

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

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

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

空空如也

天元浪子的留言板

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

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

TA关注的人 TA的粉丝

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