
python
文章平均质量分 52
confiself
这个作者很懒,什么都没留下…
展开
-
Tesseract-OCR 和cnocr/cnstd
Tesseract-OCR原创 2022-12-19 20:31:45 · 523 阅读 · 0 评论 -
协同过滤——相似度公式
转载于推荐系统基础算法--余弦相似度算法详解及应用_至臻于勤-大道至简的博客-优快云博客_余弦相似度推荐算法Jaccard index相似系数:简单的计算u与v兴趣相似度的公式: 余弦相似度计算(向量方法): 一般余弦公式证明公式:再来看看,上面的例子,Nu=X={a,b,c,d},Nv=Y={a,c,g},令物品出现一次就加1,就得到两个向量X={1,1,1,1,0},Nv=Y={1,0,1,0,1},代入上式得:从上面的计算得出,用户u与v的兴趣相似度是0.577,属于一般偏上一点,扩展转载 2022-06-30 14:31:15 · 672 阅读 · 0 评论 -
转载:[python] ThreadPoolExecutor线程池
转载:https://www.jianshu.com/p/b9b3d66aa0be[python] ThreadPoolExecutor线程池StormZhu关注52018.05.06 12:12:15字数 1,865阅读 106,810初识Python中已经有了threading模块,为什么还需要线程池呢,线程池又是什么东西呢?在介绍线程同步的信号量机制的时候,举得例子是爬虫的例子,需要控制同时爬取的线程数,例子中创建了20个线程,而同时只允许3个线程在运行,但是20个线程都需要创建和转载 2020-12-21 15:53:41 · 137 阅读 · 0 评论 -
contextvars上下文
import asyncioimport contextvars"""上下文测试,此模块支持线程/协程上下文测试方式:分别在两个客户端访问,交错执行命令,结果表明前后上下文一致telnet 127.0.0.1 8081"""client_addr_var = contextvars.ContextVar('client_addr')def render_goodbye(): # The address of the currently handled client can ...转载 2020-10-19 10:46:07 · 248 阅读 · 0 评论 -
python 动态加载模块
动态加载模块分2种情况来说明1 该模块没有调用其他模块如当前目录下有个add.py文件,文件内容如下:def add(a, b): return a + b在当前测试文件中写如下测试代码:def test_func(): module = __import__('add') func = getattr(module, "add") print(type(func)) print(func(1, 2))打印:<class '原创 2020-07-10 22:34:30 · 622 阅读 · 0 评论 -
py_zipkin源码分析(1)
1 添加root_span原理只要传zipkin_attrs或者设置采样率,则认为是root_span,此时,可以利用ZipkinLoggingContext,发送存储在Tracer/span_storage中的span2 添加子span原理利用with上下文管理,每执行一次上下文,则在start的时候push保存上下文,退出时pop上下文,这样只要基于父上下文,就能根据父span新建子span2 多线程和协程通过localThread获取的已经是另外一个线程了,因此需要在新建线程之前,原创 2020-06-08 22:23:02 · 238 阅读 · 0 评论 -
python打包上传至pypi实践
1. 注册一个pypi账号网址在这里 https://pypi.org/ 很简单,直接注册就好2.新建python 项目注意参考标准目录文件,常用结构如:├── README.md├── docs├── project│ ├── init.py│ ├── main.py│ ├── moduleA│ │ ├── init.py│ │ └── pack...原创 2020-02-28 21:50:33 · 232 阅读 · 0 评论 -
python正则表达式分组标记
1原创 2020-02-27 21:55:07 · 1252 阅读 · 0 评论 -
python数据分析之pandas(13)高级数据聚合
之前通过map函数,可以对列进行处理,这节主要学习transform和apply函数1. transform函数transform()函数更适用于聚合操作,但是它对参数有特定要求:作为参数的函数必须生成一个标量(聚合),因为只有这样才能进行广播frame.groupby(‘color’).transform(np.sum).add_prefix(‘tot_’)>>> im...原创 2020-02-21 22:44:05 · 217 阅读 · 0 评论 -
python数据分析之pandas(12)数据聚合
1.goupby()函数实例可以对frame或者其中部分列排序,排序by可以是一列或多列,返回索引列为by中的列,而columns则为所选择的要排序的列frame[‘price1’].groupby(frame[‘color’])>>> frame = pd.DataFrame({'color': ['white', 'red', 'green', 'red', 'gree...原创 2020-02-20 23:06:44 · 242 阅读 · 0 评论 -
python数据分析之pandas(11)排序和字符串处理
1.take排序take()函数可以理解为对frame对象按照给定行按顺序抽取frame.take([2,1]) //取index为2,1的行>>> import pandas as pd>>> import numpy as np>>> frame = pd.DataFrame(np.arange(9).reshape(3,3))...原创 2020-02-19 21:29:06 · 1086 阅读 · 0 评论 -
python数据分析之pandas(10)离散化和元面划分
为对连续数据进行分区,pandas提供了一些函数:1. 区间划分>>> import pandas as pd>>> results = [1,3,4,8,2,5]>>> bins = [1,3,9]>>> cat = pd.cut(results, bins)注意:这里的bins最小值要小于results中的值...原创 2020-02-18 23:19:37 · 304 阅读 · 0 评论 -
python数据分析之pandas(10)数据转换
1. 删除重复元素通过duplicated()函数可以找出重复的行,操作如下:frame.duplicated() //判断是否重复行frame[frame.duplicated()] //删除重复行frame.drop_duplicates() //删除重复行示例如下:>>> frame = pd.DataFrame({'color': ['white', 'wh...原创 2020-02-17 22:52:59 · 166 阅读 · 0 评论 -
python数据分析之pandas(9)数据拼接
1.拼接numpy的concatenate函数利用concatenate可实现按axis进行拼接,如:>>> import numpy as np>>> a = np.arange(9)>>> aarray([0, 1, 2, 3, 4, 5, 6, 7, 8])>>> a = np.arange(9).resh...原创 2020-02-16 22:04:30 · 159 阅读 · 0 评论 -
python数据分析之pandas(8)数据合并
1.merge函数指定合并列>>> import pandas as pd>>> frame1 = pd.DataFrame({'id': ['ball', 'pencil', 'pen', 'mug', 'ashtray'olor': ['white', 'red', 'red', 'black', 'green'], 'brand': ['OMG...原创 2020-02-15 21:17:12 · 326 阅读 · 0 评论 -
python数据分析之pandas(7)数据读写
pandas提供各种I/O API函数,这里把一些常用的方式分享给大家。1.读写csv文件frame = read_csv('a.csv')//返回DataFrame对象,相关参数如:names=['',''] 指定表头; header=None 使用默认表头;index_col=['color', 'status'],给前2列设置为层级索引frame.to_cs...原创 2020-02-14 22:34:51 · 158 阅读 · 0 评论 -
python数据分析之pandas(6)等级索引和分级
之前介绍的Series和DataFrame都是单条索引,其实还可以是多级索引。通过多级索引可以很方便的处理多维数据。注:ser指Series对象,frame指DataFrame对象1. Series多级索引>>> ser = pd.Series(np.arange(4), index=[['a', 'a', 'b', 'b'], ['i1', 'i2', 'i3']...原创 2020-02-14 21:48:40 · 1982 阅读 · 0 评论 -
python数据分析之pandas(5)排序、位次和NaN
排序和位次约定:ser指Series,frame值DataFrame1. 根据索引排序ser.sort_index() //索引升序ser.sort_index(ascending=False) //索引降序frame.sort_index(axis=1) //按列名排序,默认0为按索引行排序2.元素排序ser.order() //元素排序frame.sort_i...原创 2020-02-12 22:16:08 · 1327 阅读 · 0 评论 -
python数据分析之pandas(三)Index
Index对象声明后不能改变,不同的数据结构公用Index对象1. Index对象的方法frame.idxmin()、frame.idxmax() //索引值最小和最大元素2. 含有重复标签的Indexindex=['a', 'a']frame.index.is_unique //索引是否唯一3. 更换索引frame.reindex(['a', 'b'])注意:会删...原创 2020-02-10 22:35:58 · 340 阅读 · 0 评论 -
python数据分析之pandas(二)DataFrame对象
DataFrame对象DataFrame可以理解为一个由Series组成的字典,其中一列的名称为字典的键,Series为字典的值。一般可以直接通过字典或嵌套字典来构建DataFrame1. 定义DataFrame对象通过dict创建DataFrame,这里的color和object为columns名>>> data = {'color': ['r', 'g', ...原创 2020-02-10 21:50:25 · 435 阅读 · 0 评论 -
python数据分析之pandas(一)
Series对象1. 声明Series对象a.通过数组赋值>>> import pandas as pd>>> s = pd.Series([9,8,-1,2])>>> s0 91 82 -13 2dtype: int64b.设置index>>> s = pd.Ser...原创 2020-02-08 22:47:44 · 117 阅读 · 0 评论 -
python3和python2的区别
inputpython2中为raw_input()python3为input()print 函数print语句没有了,取而代之的是print()函数Unicodepython2中一般在文件开头设置文件编码方式为# coding:utf-8,同时将文件源码保存为utf-8。而python3中默认编码方式为unicode,计算中文字符串字数时非常方便,如len(words),...原创 2020-02-06 18:29:28 · 233 阅读 · 0 评论 -
flask+gevent+gunicorn+supervisor+nginx异步高并发部署
背景flask是一款同步阻塞框架,在调用外部http服务时,当前进程将阻塞,无法其他用户的请求,本文则是研究的是如何利用gevent提升flask的并发能力,包括如下内容:改造前的服务from flask import Flaskimport timeapp = Flask(__name__)@app.route('/')def index(): time.sleep(1...原创 2019-12-06 23:00:45 · 1464 阅读 · 0 评论 -
利用redis的List结构模拟celery任务队列
在代码中是查看celery队列不太方便,只能通过管理工具来查看(目前暂未找到其他较好方案,如有请留言告诉我),本文介绍一种利用redis的list结构来模拟任务队列状态。首先我们学习下redis的基本操作。python中redis基本操作 # 创建连接,默认数据库参数 r = redis.Redis() # 可以使用连接池 pool = redis.Conne...原创 2019-11-23 23:47:00 · 334 阅读 · 0 评论 -
Python分布式应用实践
本文重点探讨以下几个内容:python自身对分布式进程的支持managers子模块主进程task_master.py子进程task_worker.pycelery分布式框架实践celery简介celery+redis环境安装celery实现简单分布式计算python自身对分布式进程的支持Python的multiprocessing模块不但支持多进程,其中managers子模...原创 2019-11-20 20:56:28 · 608 阅读 · 0 评论 -
python应用日志写入ES
python应用日志写入ES实时/准实时方案可以使用以下3种方式实现:flume+kafka+spark准实时写入ESlogging + CMRESHandler实时写入ES利用python中的Elasticsearch库实时写入ESpyinotify后台监控文件变化写入ES定时写入方案则有:超时重试及定时批量写入ESimport uuides_id = str(uuid....原创 2019-11-19 22:37:05 · 2340 阅读 · 0 评论 -
Python多进程教程
本文重点探究以下几个内容:创建进程Process进程间数据传递Queue/Pipe/Value/Array/Manager进程池Pool创建进程Process创建进程方式如下:import timefrom multiprocessing import Processdef foo(a, b): time.sleep(1) print(a+b) # 不打印...原创 2019-11-10 23:23:45 · 320 阅读 · 0 评论 -
python多线程
本文重点探究以下几个问题:多线程内存共享 线程类 获取线程结果 方法:join/setDaemon对线程退出的作用 线程无法利用多核,不是真正的并发多线程内存共享多个线程访问同一内存变量时,需要通过锁机制来实现,未使用锁的多线程代码如下:import time, threading# 假定这是你的银行存款:balance = 0def change_it(n):...原创 2019-11-08 22:41:09 · 163 阅读 · 0 评论