上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页
摘要: 用Docker打包Python运行环境 在项目中运用Docker来打包环境依赖也可以大大提高工作效率。Docker使用客户端服务器架构。Docker客户端与Docker守护进程会话,后者复杂构建、运行和分发Docker容器的繁重工作。Docker客户端和守护程序可以在同一系统运行,也可以将Docker客户端连接到远程Docker守护进程。 阅读全文
posted @ 2022-05-13 20:21 orion-orion 阅读(4335) 评论(0) 推荐(0) 编辑
摘要: Python:实用运维脚本编写(进程/文件/目录操作) Python在很大程度上可以对shell脚本进行替代。笔者一般单行命令用shell,复杂点的多行操作就直接用Python了。这篇文章就归纳一下Python的一些实用脚本操作。我们想要和文件名称和路径打交道时,为了保证获得最佳的移植性(尤其是需要同时运行与Unix和Windows上时),最好使用os.path中的函数。如果仅仅是想创建或解包归档文件,可以直接使用shutil模块中的高层函数。 阅读全文
posted @ 2022-05-12 14:45 orion-orion 阅读(1303) 评论(2) 推荐(1) 编辑
摘要: Python:用NetworkX生成并绘制(带权)无向图 NetworkX是一个非常强大的网络科学工具,它封装了图的数据结构和许多经典图算法,也内置了许多可视化函数可供调用。首先我们需要对随机图进行生成。最经典的随机图当属我们在上一篇博客《Erdos-Renyi随机图的生成方式及其特性》中讲到的Erdős-Rény随机图了,我们这里选用其中的𝐺(n, p)形式,调用对应的API。 阅读全文
posted @ 2022-05-11 09:36 orion-orion 阅读(2270) 评论(1) 推荐(2) 编辑
摘要: 图数据挖掘:Erdos-Renyi随机图的生成方式及其特性 Erdos-Renyi随机图以两位著名的匈牙利数学家P.Erdős和A. Rényi的名字命名的,是生成随机无向图最简单和常用的方法,包括以下两种紧密相关的变体:G(n,p): 拥有n个节点,且边(u, v)以独立同分布的概率p产生的无向图;G(n, m): 拥有n个节点,且其中m条边按照均匀分布采样生成的无向图。G(n, p)生成时按某个次序考虑所有可能边中的每一条,然后以概率p独立地往图上添加每条边。 阅读全文
posted @ 2022-05-10 19:20 orion-orion 阅读(3664) 评论(3) 推荐(3) 编辑
摘要: SICP: 层次性数据和闭包性质(Python实现) 序对可以为我们提供用于构造复合数据的基本“粘接剂”,鉴于Python中tuple中元素不可变的性质,我们通过list来实现序对,如[1, 2]。Python的PyListObject对象中实际是存放的是PyObject*指针, 所以可以将PyListObject视为vecter 阅读全文
posted @ 2022-05-06 22:09 orion-orion 阅读(534) 评论(0) 推荐(0) 编辑
摘要: Python:实现简单的递归下降Parser 在上一篇博文中,我们介绍了用正则表达式来匹配对应的模式,以实现简单的分词器。然而,正则表达式不是万能的,它本质上是一种有限状态机(finite state machine,FSM), 无法处理含有递归语法的文本,比如算术运算表达式。要解析这类文本,需要另外一种特定的语法规则。我们这里介绍可以表示上下文无关文法(context free grammer)的语法规则巴科斯范式(BNF)和扩展巴科斯范式(EBNF)。实际上,小到一个算术运算表达式,大到几乎所有程序设计语言,都是通过上下文无关文法来定义的。对于简单的算术运算表达式,假定我们已经用分词技术将其转化为输入的tokens流。 阅读全文
posted @ 2022-04-30 17:06 orion-orion 阅读(737) 评论(0) 推荐(0) 编辑
摘要: Python:用re模块实现简易tokenizer 分词(tokenization)任务是Python字符串处理中最为常见任务了。我们这里讲解用正则表达式构建简单的表达式分词器(tokenizer),它能够将表达式字符串从左到右解析为标记(tokens)流。要完成这样的分词操作,我们首先需要定义出所有可能的标记模式(所谓模式(pattern),为用来描述或者匹配/系列匹配某个句法规则的字符串,这里我们用正则表达式来做为模式),注意此处要包括空格whitespace,否则字符串中出现任何模式中没有的字符后,扫描就会停止。因为我们还需要给标记以NAME、EQ等名称,我们采用正则表达式中的命名捕获组来实现。 阅读全文
posted @ 2022-04-29 15:48 orion-orion 阅读(857) 评论(0) 推荐(0) 编辑
摘要: 组合数学:Burnside引理和Polya定理解决染色置换问题 Burnside引理是群论中一个结果,在考虑对称的计数中经常很有用。该结论被冠以多个人的名字。 Polya定理也用来研究不同着色方案的计数问题,它是组合数学中的一个重要的计数公式,是Burnside引理的一般化。Polya计数定理中的群G是作用在n个对象上的置换群。Burnside引理中的群G是对这n个对象染色后的方案集合上的置换群。两个群之间存在一定的联系,群G的元素,相应的在染色方案上也诱导出一个属于G的置换。 阅读全文
posted @ 2022-04-27 10:14 orion-orion 阅读(412) 评论(0) 推荐(0) 编辑
摘要: Linux:文件解压、复制和移动的若干坑 Linux下进行文件的解压、复制、移动应该是最常见的操作了。尤其是我们在项目中使用大量的数据集文件(比如机器学习)时。然而使用这些命令时一不留神就会掉进坑里,这篇文章我们就来细数用Shell进行文件操作的这些坑。压缩传参顺序是压缩后的文件在前,压缩前的文件在后,很容易搞错。使用mv语句时也要格外小心,因为它既有移动到目录的作用,也有重命名的作用。 阅读全文
posted @ 2022-04-20 22:24 orion-orion 阅读(1498) 评论(0) 推荐(1) 编辑
摘要: Python:range、np.arange和np.linspace的区别与联系 range是python内置的一个类,该类型表示一个不可改变(immutable)的数字序列,常常用于在for循环中迭代一组特殊的数;numpy.arange是NumPy包的一个函数,它的功能与Python内置的range类似,但该类与Python内置的range区别有两点:一是支持小数参数,二是返回ndarray类型而非像range那样常常做为(隐式转换为)list类型使用;numpy.linspace也是Numpy内置的一个函数,它和numpy.arange类似,但是它不再是简单的[start, stop)左闭右开,也没有使用步长step,而是使用样本个数num。 阅读全文
posted @ 2022-03-21 22:21 orion-orion 阅读(1388) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页