- 博客(29)
- 资源 (16)
- 收藏
- 关注
原创 Python 图算法系列9-图的应用探索
说明假设我们拿到了一批数据(已经存储在neo4j中),如何通过图的方式实现其价值呢?实现价值的途径+ 1 事实性质的查询+ 2 模式的查询与目标问题的关联(强规则)+ 3 模式查询的结果进行模糊描述(弱规则-聚类)+ 4 模式查询的结果进行精确描述(弱规则-分类)事实性质的查询。数据库本身的价值就是查询,所以建立了某种图库(或者说关系库)之后,那么第一个应用就是查事实。例如xx查、xx宝,在有了大量的股权关系后,你就可以查感兴趣的目标。但是这种价值一般来说附加值相对低,属于寡头垄断的行
2020-10-30 19:00:27 713
原创 Python 全栈系列41 - 模块的热加载
说明我们通常会在系统功能上线后需要修改某一部分的内容,但是我们又不希望重新启动整个系统。以下基于这个应用进行介绍。方法:通过imp的reload函数进行「模块」的重载内容首先要区别python里面模块和包的概念,具体的可以参考这篇文章在Python中,一个.py文件就称之为一个模块(Module)。Python又引入了按目录来组织模块的方法,称为包(Package)。包可以理解为一个文件夹,里面有若干.py文件,并且有一个__init__.py文件注意:我们引用的函数是存在模块里的,要
2020-10-29 11:44:10 740
原创 建模杂谈系列39- celery + redis的单机异步并行
说明延续建模杂谈系列38- 基于celery、rabbitmq、redis和asyncio的分布并行处理(概述)的内容,我们假设任务已经优化致单核满载,现在使用异步并行来加快这个过程。这同步异步的让我想起了ATM和SDH,好多年前的事了,只能说计算机行业和通信行业渊源太深了。目的:使用异步并行加快DataFrame的列变换工作。因为redis是基于内存的数据库,速度会比较快,在单机上作为broker应该会非常快。所以单机情况下,我们使用celery+redis。关于redis可以参考Redis是什
2020-10-28 17:46:03 409
原创 Python 全栈系列38 - 搭建网站模板
说明搭建网站模板的原因是未来需要快速的启动多个不同的web服务,建立一个基于自有算网的分布式web服务。本篇梳理一下网站的模板(结构及静态资源),未来新的网站可以把模板拷贝过去再进行个性化调整就可以了。1 结构首先使用函数生成docker-compose项目结构...
2020-10-28 14:22:00 822 1
原创 Python - 装机系列13 申请个人域名
说明在购买云主机之后已经可以通过ip地址访问自己的网站了,但是记起来不方便。可以申请一个域名方便记忆,未来可以定义各种二级域名,方便管理。以下只是申请域名的步骤以及做域名解析的内容。申请步骤1 找一个云服务商(阿里,腾讯等),找到域名服务,进行购买(我省点事,买了个10年的)2 填初审信息1 主体信息:如果是个人就是个人的基本情况(户口本的那些东西)2 网站信息:这个网站要用来干嘛的,域名啥的,把这些基本信息填上3 证件信息:对应个人的身份证、户口本、居住证啥的(证件日期一定不要过期)
2020-10-28 10:47:56 192
原创 Python一些可能用的到的函数系列11 sh设置环境变量,python程序获取
说明功能或者说目的有两点:1 有时候在执行时不方便加参数,但是程序又需要参数2 有时候程序需要读取环境变量例如:使用gunicorn方式启动flask app, 不方便加参数,但是我们又希望可以通过prod, test关键字启动不同的配置gunicorn -w 2 -k gevent app:app -b 0.0.0.0:5000并行计算需要每个程序报告自己(whoami),或者深度学习需要查cuda设备内容主要用的包是python的os包下面的environ通过 os.
2020-10-28 10:13:18 345
原创 建模杂谈系列38- 基于celery、rabbitmq、redis和asyncio的分布并行处理(概述)
说明简单来说,为了实现更快、更可靠的服务,调用更多的资源(计算、存储、通信)。或者反过来说也行,现在资源比较廉价(手头的资源比较富余),如何更快、更可靠的完成任务,以实现优质的服务。本文只是概述,具体的实践内容会很多,到时候一块内容放一篇文章。就个人而言,我直接可控的计算、存储和通信资源8成以上都在闲置。1 任务的种类我觉得从资源的利用上任务可以归纳为3种,单机计算并行,单机io并行和多机计算并行。事实上,我们平时还会进行一些低效的任务,那个就不单独作为一种归纳了。现在的cpu基本都是多核的,
2020-10-27 17:40:07 494
原创 建模杂谈系列37-使用编辑距离和结巴进行文本比对
说明假设场景:有一批表格文件,有两列文本需要比对结果是否一致。简单考虑以下情况:1 如果文本本身就比较短,那么出现差异时就很难说对错2 如果文字本身较长,可以通过编辑距离检查两个文本的差异3 有可能文本虽然编辑距离大,但是意思接近,这时候简单的使用结巴分词比较词组需求:原始文件是一批csv, 里面已经对两列数据进行了判定,字段结果为“无数据”、“不一致”,现在需要人对不一致的部分进行详细比对。(原程序只是比较了值是否一致,现在需要准确的确认。例如,“上海市” 不等于 “上海”,但是其实本来是
2020-10-27 11:56:06 228
原创 Python一些可能用的到的函数系列10 计算文件摘要
说明计算文件摘要有两个目的:1 获取一个文本名称指代文件2 校验文件的一致性计算摘要的话主要考虑以下三种,详情可参考这篇文章:MD5算法运行1000次的平均时间为:226msSHA1算法运行1000次的平均时间为:308msSHA256算法运行1000次的平均时间为:473msMD5是32位的,相对短一些(撞车或者被破解的可能性稍微高一点)。整体上建议使用 tag+ hash值 + 毫秒级时间戳,联合起来作为唯一索引。0 python 工具 hashlib简单介绍参考这篇文章
2020-10-26 13:43:00 481
原创 Python一些可能用的到的函数系列9 批量插入mysql
说明使用pymysql 提交insert语句,批量插入数据。内容测试数据。1万条数据,3个变量。data_df = pd.DataFrame()data_df['var1'] = ['testvar' + str(i) for i in range(10000)]data_df['var'] = '2010-01-01'data_df['var3'] = list(range(10000))data_df['var1'].iloc[:100] = np.nandata_df['var3
2020-10-26 00:10:36 159
原创 Python - 装机系列14 安装iterm2终端
说明听说iterm2使用起来比较方便(MAC),安装的主要过程参考这篇文章1 下载文件到这里下载软件2 执行安装安装好后拖入app就可以了。我在安装时直接提示是否设为默认终端,选择是,或者可以之后手动修改chsh -s /bin/zsh3 下载主体到这里去下载地址,按参考文章里的方式去设置就好了。4 下载字体需要 Meslo 字体支持,要不然会出现乱码的情况,下载地址其他的就是按照过程当中把配置文件写到新终端的bash文件中,然后source就好了。效果如下:...
2020-10-21 14:17:03 272
原创 建模杂谈系列33-自有算网的迁移计算jupyter
说明之前的一篇文章介绍了使用局域网主机执行迁移计算,但是那个是基于ipython命令行终端的。本篇介绍在局域网主机启动jupyter服务,远程通过浏览器访问。ipython和jupyter各有各的优点吧,没办法只用一个。1 配置FRP首先将远程局域网主机的frpc.ini文件进行修改,将其8888端口投射到远端主机的端口(例如10100)。具体FRP配置这里就不再提,可以翻看我以前的文章。2 docker-compose构建镜像将本地的环境通过docker-compose方式传送到远程局域网
2020-10-21 14:02:24 183
原创 Python 全栈系列36 - 搭建web服务的一些总结
说明本篇并不涉及细节,主要是基于自有算网的基础,对构建web服务的后端逻辑进行一些优化和总结。假设基于的硬件:1 一台云主机(A,服务器):Ubuntu系统2 一台局域网主机(B,服务器):Ubuntu系统3 一台MacBook(C,个人使用的电脑)基于的软件:1 FRP:提供B-C的SSH,方便进行远程控制,并提供B在A上的端口资源透射2 MySQL: 记录用户信息,权限,上传的文件,以及计算的结果(报表)3 RabbitMQ: 用于消息服务的连接4 Flask: web服务1
2020-10-19 13:39:43 220 2
原创 Python 图算法系列8-图数据库阅读及简单实验
说明看看这本书,里面还是有不少常识和启发的。本篇会摘取一些里面比较好的内容,然后做一个简单但比较有用的应用。Mysql这样的数据库,在需要多个join(递归)时表现会很差。在例如「商品推荐」这样的问题时就会碰到比较大的问题。例如在库中寻找朋友关系层数Mysql执行时间Neo4j返回记录数20.0160.01~2500330.2670.168~1100041543.5051.359~6000005未完成2.132~800000
2020-10-17 22:42:54 758 1
原创 Python 全栈系列34 -Flask-Mysql的数据对象/表增加
说明我也很想一次把数据表结构都设计好事实证明,唯一不变的就是变化。本篇讨论如何比较灵活的增加Flask的数据的数据对象以应对各种变化。以新增面对变更1 不要外键2 用jinja模板创建新的对象3 使用shell直接创建新对象4 使用pymysql从外部导入数据5 使用静态导入表在内部使用(弥补前面不加外键的操作)...
2020-10-16 00:39:19 276
原创 Python 全栈系列35 - 基于自有算网的分布式web服务搭建
说明一方面在实践中踩了一些坑,另一方面早先没有实现自有算网以及docker-compose + paramiko的部署,回顾并设计一下新的构建方式。自有算网还有一个关键实验没做,及一台局域网主机可否起两个frpc分别连接两个不同的云主机。(理论上可行)现在可以把云主机以及数台局域网主机视为一个局域网,并且每个应用都可以使用docker-compose快速部署。1 组件组件应用Nginx作为前端流量的入口,将所有的服务都连接起来, 需要主机上开放端口,启动web服务R
2020-10-15 12:10:21 228 1
原创 Python一些可能用的到的函数系列8 使用Jinja生成sqlalchemy数据对象
说明人写代码总有bug传统的写代码方式是hardcode。即由人按照程序语言进行编写,然后语言的组件进行编译/解释,交给机器执行。任何一种语言,也包括python,没有办法完美表达人的意思(这意味着表达方式可能不人性化);另外就是机器不接受错别字。所以手工编写代码错误的概率很好,即便经过多次调试仍然不能保证无错。这就是code by man。code by code by man 其实指的是人通过工具间接的编程。除去一些产品之外(例如拖拽编程之类的,那也不是最优方式),其实比较常见的方式是
2020-10-14 00:33:36 324
原创 Python 全栈系列32 -基于bootstrap和jinja的布局模板
说明Bootstrap 本身有的栅格布局方法很好,本篇讨论的模板是从大规模通用的角度出发,做了简化;Jinja可以快速的生成H5元素,但是方法比较普适(我的另一篇文章),也对应的进行一些精简和套路化。应用基于Flask的网络服务构建。本篇想讨论一个简单但可以应付80%以上的布局和极速搭建网页框架的方法/模板。一个页面的布局应该包含如下部分:1 导航条:以超链,或者下拉超链的方式去别的页面。(反映整个web的逻辑)2 栅格内容:以行为基础。可以分一列,两列和三列。(BS本身似乎是12列的,组合
2020-10-13 18:17:17 407
原创 建模杂谈系列31-自有算网的迁移计算
说明在这篇文章我介绍了如何使用一台公网机把局域网机连起来,对于有多台计算机的童鞋而言,就有了一个自有算网。自有算网是一个分布式计算机网络。其意义在于:你的小笔记本可以很自由干些非计算的活(续航时间长),让一些强大的主机进行计算,甚至多个主机同时计算。本篇讨论把原来在小mac上的工作前移到大计算机上。通常我会在笔记本上建一个文件夹,然后在里面放入一些数据文件,创建python文件进行工作。期望达到的效果,只多用1句命令实现用远程主机的ipython终端交互式工作。1 本地构建docker-com
2020-10-13 13:53:01 158
原创 Python一些可能用的到的函数系列7 以终为始与开支散叶的遍历方法
说明本想着做一个生成docker-compose项目结构的函数,没想到炸出以前留的一条大鱼…先从两个例子回顾一下之前做的一些事,然后看看怎么规划和包装这个东西(我感觉这个应用是比较通用的,可以嵌入别的地方)例子1:使用配置文件,生成H5元素。(以终为始)例子2:使用配置文件,生成文件的目录树。(开枝散叶)1 例子1:使用配置文件,生成H5元素flask中使用jinja作为模板生成网页比较方便(可自行参考狗书),但是还远远不够灵活。之前突发奇想,使用配置文件再加上一些函数和规范,与jinja结
2020-10-12 00:58:54 275
原创 建模杂谈系列30-报表的设计与mysql存储
说明主要为了展示报表数据1 更灵活的控制报表数据的更新与修改2 兼顾存储与可视化1 使用FLask(蓝图模式)启动网络服务2 使用Mysql存储表格数据(通过pymysql和flask sqlalchemy)当需要从外部灌入数据时,使用pymysql进行数据导入;在flask提供服务时,则使用sqlalchemy方便的获取所需的数据。1 报表类型1 假设现在我们能获取一些数据,从这些数据里需要提炼出汇总数据展示(例如行业数据)2 假设用户可能上传数据,我们计算完成后存入数据库
2020-10-12 00:04:33 689
原创 Python 全栈系列29 -Flask 发送邮件
说明Flask集成了发邮件功能,如果包在一个flask服务中,修改起来就比较麻烦。本篇梳理一下Flask发送邮件的功能,并用docker打包成一个接口服务。Flask经典的异步发送邮件的方法我看参考中的那篇文章已经写的很好了(省了不少功夫 ^ ^)。本篇主要从几方面进行改造和补充:1 使用docker-compose方式。将其打包成一个docker-compose项目,通过命令行传入参数启动(这样以后换邮箱就比较方便)2 将这个服务改造为api方式的服务。3 使用gunicorn&ge
2020-10-09 23:40:39 666 2
原创 Python 全栈系列30 -使用request包进行接口调试
说明Postman是通过h5页面操作,requests是通过程序的方式。requests是使用Apache2 licensed 许可证的HTTP库。用python编写。比urllib2模块更简洁。Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完
2020-10-07 09:50:52 240
原创 Python - 装机系列13 python运行时读取bash中的变量
说明服务在运行时,有些参数最好不要暴露在程序中。本篇讨论使用bash文件保存关键信息,python在使用时调取。1 Linux:Shell和Bashshell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。Bourne Again shell (bash), 正如它的名字所暗示的,是 Bourne shell 的扩展。bash 与 Bourne shell 完全向后兼容,并且在 Bourne
2020-10-06 00:22:21 745
原创 Python 全栈系列27 - Nginx 从0到1实践
说明Nginx很实用:1 通过反向代理整合了一台机器上的多个资源2 通过负载均衡实现了主备机切换(高可用)Nginx很方便:1 基本上全部都是配置需要花功夫的就是了解nginx的原理,配置该如何配。从实用的角度出发,全部使用Docker完成实验。(Docker的介绍在我其他文章中比较多,本篇不再重复)本篇主要利用location和upstream两个配置实现反向代理和主备热切(负载均衡)。1 Hello World80是HTTP协议的默认端口,8080是Tomcat服务器的默认端
2020-10-05 16:15:47 282
原创 建模杂谈系列27- 面向小团队(个人)的人工智能生产力平台方案 - 待续
说明从工业革命的角度看人工智能。以下参考18世纪中叶,蒸汽机的问世让英国率先跨入了蒸汽时代,引领了第一次工业革命,也让英国一跃成为日不落帝国。一个世纪后,19世纪中叶,以德国为代表的欧洲大陆国家引领了第二次工业革命,率先进入电气时代,使得德国国力剧增,为日后德国成为“德意志第三帝国”,开启充满野心的扩张之路打下了基础。又过了一个世纪,20世纪中叶,计算机的发明让美国率先开启第三次工业革命,也最终把美国推上了“地球帝国”的宝座。现在,又过去了3/4个世纪,人类已经到了第四次工业革命的大
2020-10-04 21:20:04 231
原创 Python - 装机系列12 设置云主机root用户的ssh免密登录
说明有些云主机为了安全,默认不允许root用户远程登录,但是如果要脚本执行命令时有时会不方便1 修改配置文件代开ssh服务的配置文件vim /etc/ssh/sshd_config将PermitRootLogin的注释打开,。我不想允许密码登录,所以保留原选项,应该也可以填yes和no,那样的话密码也可登录。密码最大尝试次数为6。# Authentication:#LoginGraceTime 2mPermitRootLogin prohibit-password#StrictMode
2020-10-03 00:04:32 373
原创 Python 全栈系列18 - 使用paramiko执行远程主机操作
说明使用命令行连接远程主机稍微有点麻烦,特别是需要使用vim之类的去修改文本更是麻烦。本篇讨论使用paramiko把这部分的操作融入到python操作中,简化这部分操作(运维操作)。
2020-10-01 16:56:51 620
原创 Python 图算法系列6-使用Py2neo操作neo4j pro - 待续
说明进一步的使用py2neo操作neo4j,为搭建一个操作图库的方法做准备。上一篇的内容Python 图算法系列5-使用Py2neo操作neo4j以关系为核心,以子图为单元。1 节点1.1 直接创建关于连接端口。neo4j默认的连接端口是7474(网页访问的端口,以及py2neo连接的端口)。7687端口用于用户输入登录认证信息(网页版)。使用py2neo可以创建节点import pandas as pdimport numpy as npimport timefrom py2n
2020-10-01 16:49:00 1592 2
1 python的三种类方法
2021-01-10
DataManipulation-0.1.12.1-py3-none-any.whl
2020-07-11
DataManipulation-0.1.7-py3-none-any.whl
2020-05-30
netflix_titles.csv
2020-05-29
DataManipulation-0.1.6-py3-none-any.whl
2020-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人