Python
IT1995
每周个人笔记分享,欢迎广大网友查阅!
展开
-
Docker笔记-搭建达梦Python环境(dmPython + SQLAlchemy)
达梦提供的C接口,dpi和java的jar包已经很好用了,想不到,来了一个用python的同事,这里就只能适应下他了,在不影响其他环境下搭建一个python的达梦环境。最后发现,python对进行达梦增删改查,还是比较简单的开发效率大于C的dpi,甚至感觉效率也不再java之下。仅仅是搞业务这块还是比较方便的,但搭建和部署,难度比C和Java复杂了很多,反正就是各有优劣吧。原创 2024-05-20 08:46:05 · 874 阅读 · 1 评论 -
Python笔记-Alchemy中改变表的模式(库schema)
在table对应的类中,使用__table_args__ = { 'schema:' : 'schema_name' } 即可。现在是2024-01-10,发到互联网上应该是2024-05-13。查了下chatgpt,麻了,乱七八糟的。最后还是靠stackoverflow解决的,目前,从解决问题的角度来看,这个还是牛逼点。原创 2024-05-13 10:16:29 · 434 阅读 · 1 评论 -
Python文档阅读笔记-Car detection with OpenCV
在人脸检测中,使用预先被训练过的模型文件去侦测脸和眼睛。同样使用预先被训练过来的模型文件去检测汽车。将用这个模型检测出来的汽车用矩形框出来。原创 2023-03-20 08:54:17 · 1997 阅读 · 0 评论 -
Python文档阅读笔记-Number Plate Recognition with OpenCV and EasyOCR
注意,在本博文写的时候(2022-02-28)OpenCV版本4.5.5.62和EasyOCR不兼容。首先初始化Reader对象,然后调用readtext函数,其中的参数,传找到的车牌号。所以,这种车牌,需要有和其他技术进行搭配。原因的光线问题,在识别中,拍照也是一门技术活。如果返回为0,说明什么也没找到,什么也没识别出来,这里程序会出现一个提示框。首先将图片转换为灰度图,再通过高斯滤波删除一些干扰信息,最后进行边缘检测。如果识别成功,程序会将识别到的信息,也就是那3个元素,显示到车牌旁。原创 2023-03-06 08:57:58 · 2484 阅读 · 1 评论 -
Python文档阅读笔记-Turn Images into Cartoons using Python
下面展示不同原始图片转换为不同版本的图片。原创 2023-01-09 13:52:16 · 1495 阅读 · 1 评论 -
Python笔记-windows管道通信
这里主要是两个进程中共享数据,本质是共享内存。采用I/O流的方式来访问。有两种管道:①匿名管道:父子进程间通信;②命名管道:两个进程间通信。Python代码如下:server.py# -*- coding: utf-8 -*-import win32fileimport win32pipePIPE_NAME = r"\\.\pipe\test_pip"PIPE_BUFFER_SIZE = 65535# PIPE_ACCESS_DUPLEX 双向通信named.原创 2022-04-18 09:01:55 · 2537 阅读 · 0 评论 -
Python笔记-Linux平台中Flask打包成执行程序
这里使用的是pyinstaller。这里要先安装python3。安装的使用如果没有带上–enable-shared要重新按下./configure --prefix=/usr/local/python3 --enable-sharedecho "/usr/local/python3/lib/" >> /etc/ld.so.confldconfig安装pyinstallerpip3 install pyinstaller 然后就可以直接进行打包:pyinst原创 2022-03-14 09:05:04 · 3167 阅读 · 2 评论 -
Python笔记-解决pyinstaller打包后运行时动态加载模块报错(No module named)
出现的问题就是:No module named原因是我代码里面使用了这个importlib.import_modulepyinstaller没有检测到。百度上没有找到解决办法,在外wang找到了这里要在打包时指定下,如下命令:pyinstaller --hidden-import common.models.fundOpenPriceYear2025 --hidden-import common.models.fundOpenPriceYear2024 --hidden.原创 2022-03-14 09:02:42 · 4483 阅读 · 1 评论 -
Python笔记-SQLAlchemy Model转dict(主流方法,一行解决)
本来是没有这篇笔记的,因为功能比较简单,感觉应该很多人都写过,但是百度后发现某园、某SDN都复杂得一逼。而且抄来抄去,个人感觉不应该是这样,这个应该几行代码就搞定了。查了下外网,发现国外的大神还是牛逼,在此记录下,方便以后进行查阅我的是这样的。 def getFundModel(self): retList = [] for ret in FundModel.query.all(): retList.append(ret.__d原创 2022-03-14 08:57:59 · 4360 阅读 · 2 评论 -
Python笔记-房贷计算(本息和本金,每月还利息和每月还本金)及作图对比
如下例子:贷款100万元,如果20年还清,年贷款利率为6%,如果按照等额还款,每月需要还款多少,如果按照等额本金还款,绘制每月还款额度通过做图画比较,两种还款方式,每月还款的本金,利息以及总还款额和剩余本金(绘制图形,展示两种方式下,每月的还款额,本金以及利息和剩余本金)以及两种还款方式下,两种还款方式下总还款额的差值。用贝壳来计算看看。首先是本息:然后是本金:下面用Python计算下,代码如下:# -*- coding: utf-8 -*-impor.原创 2022-03-07 08:54:18 · 4277 阅读 · 1 评论 -
Python笔记-CAPM(资本资产定价模型)例子
数据是这样对应的沪深300 000300.SH.csv 茅台 600519.SH.csv 平安 601318.SH.csv 如下代码:# -*- coding: utf-8 -*-import pandas as pdimport statsmodels.api as smif __name__ == '__main__': hs300 = pd.read_csv("000300.SH.csv", index_col="date") mao原创 2022-02-28 08:59:25 · 2983 阅读 · 2 评论 -
Python笔记-沪深三百与茅台简单分析(2021年数据)
下载数据下载的数据分别是沪深三百2021年数据:import baostock as bsimport pandas as pdif __name__ == '__main__': #### 登陆系统 #### lg = bs.login() # 显示登陆返回信息 print('login respond error_code:' + lg.error_code) print('login respond error_msg:' + lg.error原创 2022-02-28 08:52:10 · 941 阅读 · 1 评论 -
Python笔记-Json转DataFrame(基金主题Json数据)
关于基金主题数据如何获取,在后面的博文中会介绍,这里只介绍下,Json数据转DataFrame方便进行数据分析。从互联网中得到的json数据如下:{ "Data":{ "hy":[ { "IndexCode":"817008", "BKCode":"BK0429", "BKName":"交运设备", "TradeDate":原创 2022-02-28 08:49:41 · 2717 阅读 · 1 评论 -
Python笔记-相关性分析(连续变量和分类变量)
概念相关性分析:两个连续变量之间的关系检验。Pearson相关系数:衡量两个变量的线性相关关系;Spearman相关系数:衡量两个变量的线性相关关系,部分非线性的也可以衡量;Kendall相关系数:衡量两个变量之间非线性相关关系;0.3以上就是有相关性了,0.3~0.5就是有点强的,0.5以上就是很强的。下面是分类变量,研究非连续的变量卡方检验:两个分类变量的分析,是否相关,不能表示强弱。Python例子连续变量代码如下:from statsmo原创 2022-02-21 08:44:10 · 20086 阅读 · 1 评论 -
Python笔记-假设检验之双样本T检验(两样本是否相似)
概念双样本T检验在于检验两个样本均值差异是否显著。比如男女消费是否显著。Python代码逻辑:①构造2个样本;②先进行方差齐性检查,我们规定一个阈值,这2个样本方差齐性的p-value大于0.05说明满足方差相等,可以进行双样本T检验;③进行双样本T检验,p值越大说明消费水平越相同,一般认为p大于0.05说明没啥差异(两样本比较相似),当p小于0.05说明有差异(两样本差距比较大);代码如下:from scipy import statslist1 = [121原创 2022-02-21 08:41:26 · 12159 阅读 · 5 评论 -
Python笔记-方差分析之多因素方差分析
多因数分析的格式:model = osl(‘样本某一列 ~ 样本另一列 + 样本另一列 ’)如下代码:from statsmodels.stats.anova import anova_lmfrom statsmodels.formula.api import olsimport pandas as pddf = pd.DataFrame( [ [1.4, "one", "common"], [1.5, "one", "common"], [1.6, "one"原创 2022-02-21 08:38:35 · 3846 阅读 · 1 评论 -
Python笔记-方差分析之单因素方差分析
这个单因素分析一般是用来研究不同行业股票收益水平。比如下面的代码:from statsmodels.stats.anova import anova_lmfrom statsmodels.formula.api import olsimport pandas as pddf = pd.DataFrame( [ [1.4, "one"], [1.5, "one"], [1.6, "one"], [0.1, "two"], [0.2, "two"], [0.3, "tw原创 2022-02-17 08:46:53 · 5099 阅读 · 0 评论 -
Python笔记-假设检验之单样本T检验
概念假设某个数据的均值为u,实际抽样时离u越近说明假设的这个均值越合理,越远,就说明越不合理。这里又有个p-value的概念,代表实际抽样的结果与假设的差异程度。值越大意味着越无差异。实际中我们会自己设置一个阈值,如0.05,当计算出来的p-value大于这个0.05时,就满足我们的需求,这个0.05叫显著性水平。单样本T检验:检验单个样本的平均值是否等于目标值;Python代码如下场景,一串数据,他的增长率是否是0.1,显著性水平为0.5,也就是p-value大于0.5说明检验单个原创 2022-02-14 08:45:57 · 3497 阅读 · 1 评论 -
Python笔记-上证指数收益率计算
代码如下:import pandas as pdfrom scipy import statsvalueList = [-0.010185, 0.011844, -0.00852, -0.01888, 0.001009, 0.005242, 0.019054, -0.030944, 0.013519, -0.029266, 0.002225]if __name__ == '__main__': average = pd.DataFrame(valueList).mean()原创 2022-02-14 08:44:11 · 2746 阅读 · 1 评论 -
Python笔记-置信区间含义及运算
基本概念这里先要知道几个概念!均值(平均值):一组数据的平均值,比如学生时代最喜欢的平均分;方差:一组数据与平均值的偏离程度;标准差(标准误差):方差开根号,反应数据的离散程度;置信区间:统计的数据误差范围,所以有个上下值,比如农产品上写的5kg±5%。置信水平:让人相信的概率,比如置信水平是95%,如100个数据,有95个数据在上面的置信区间上。计算置信区间①求均值;②求标准误差;③查表的z值,如下表:置信水平 |z|值 90% 1.64原创 2022-02-14 08:43:03 · 9502 阅读 · 2 评论 -
Python笔记-通过字符串创建对应的对象(import_module的使用)
如果要创建的对象,用到了其他类,要先包含下,如我这里提前包含了:from common.models.fundModel import FundModel然后这样进行创建:modelImport = importlib.import_module(modelName)modelClass = getattr(modelImport, className)modelInstance = modelClass(**modelData)这里的modelName为模型名是字符串,我这里是原创 2022-02-05 15:54:35 · 1847 阅读 · 0 评论 -
Python笔记-最大回测计算
例子初始资金是1块钱的话,资金连续一周的变化如下:周一:1.01周二:1.02周三:0.98周四:1.0周五:0.97那么我们要计算的样本为:[1, 1.01, 1.02, 0.98, 1.0, 0.97]如果计算截至到周二的最大回撤,那么我们要拿到周二的值:1.02,再拿周二之前最大的值,即,周一的1.01,再计算回撤:(1.02/1.01-1)*100=0.99%,这时间 0.99% >0 ,所以是不存在回撤的。如果计算截至到周三的最大回撤,那么我们要拿原创 2022-01-24 09:01:59 · 1898 阅读 · 0 评论 -
市场风险的度量-下行风险&最大回撤
下行风险低于目标收益的变动,一般情况下,通过用可接受的最低收益率代表,下行风险可以理解为低于目标最低收益率的波动情况。MARR代表投资者可以接受的最低收益代表。最大回撤在某个时刻的回撤(要有最高峰和最低峰)。 最大回测往往可以用来估算投资者在持有资产时可能面临的最大损失。...原创 2022-01-24 08:57:57 · 3031 阅读 · 0 评论 -
Python笔记-使用SSIM找两张图不同及使用Opencv显示
运行截图如下:这里有几点要注意的:①对比两张图片的函数SSIM具体是structural_similarity: Ⅰ:第一个参数和第二个参数是要对比的两张图片; Ⅱ:参数中有个full,默认为True,如果为True会把两张图的相似部分返回,如果为False就不返回了; Ⅳ:返回值full为False的时候有2个,一个是mssim浮点型的相似度,1代表2张图一模一样。0代表完全不一样,grad返回两张图片不同的地方类型为nd...原创 2021-10-05 20:23:06 · 3787 阅读 · 0 评论 -
Python笔记-类的单例模式及重载打印
重载如下类:class Position(object): def __init__(self, x = None, y = None): self.x = x self.y = y pass def getX(self): return self.x def getY(self): return self.y def setX(self, x): self.x = x原创 2021-09-28 07:57:52 · 253 阅读 · 0 评论 -
Python文档阅读笔记-OpenCV中Match Shapes
OpenCV使用cv2.matchShapes()用来对比2个图像是否相似。返回值越低说明2张图片越相似。这个是基于hu-moment值算出来的。代码如下:import cv2import numpy as npimg1 = cv2.imread('star.jpg',0)img2 = cv2.imread('star2.jpg',0)ret, thresh = cv2.threshold(img1, 127, 255,0)ret, thresh2 = cv2.threshold(i原创 2021-09-21 20:56:15 · 2137 阅读 · 0 评论 -
Python笔记-uiautomator2截图点击,OpenCV找图
对应的代码如下:import timeimport uiautomator2 as u2import cv2import numpy as npd = u2.connect_usb("6e0bc87e")displayWidth = d.info['displayWidth']displayHeight = d.info['displayHeight']if __name__ == '__main__': d.screenshot('pic/1.png') im原创 2021-09-14 08:50:01 · 3149 阅读 · 0 评论 -
Python文档阅读笔记-OpenCV中Template Matching
目标通过模板匹配在一张图中找相似图。原理模板匹配这个方法是在一个大图中找小图的功能,OpenCV中使用cv.matchTemplate()这个函数实现。在OpenCV中可以填写几种参数。这个函数的返回值是灰度图,其中,每个像素表示该像素的邻域与模板匹配的程度。如果输入图像的大小为W * H模板图像的大小为w * h,则输出图像的大小为(W - w + 1) * (H - h + 1)。得到结果后,可以使用cv.minMaxLoc()函数去找里面的最大值和最小值,将其作为矩形的左上角,并.原创 2021-09-14 08:47:31 · 571 阅读 · 0 评论 -
Python笔记-利用OpenCV的matchTemplate屏幕找图并使用pyautogui点击
要找的图为计算机,也就是icon.png,对应的图标为:需要安装的依赖:pip install cv2pip install PILpip install pyautogui代码如下:import cv2from PIL import ImageGrabimport numpy as npimport pyautoguiif __name__ == '__main__': im = ImageGrab.grab() im.save('./res/sc.原创 2021-09-14 08:42:49 · 3668 阅读 · 2 评论 -
Python文档阅读笔记-PyAutoGUI基本使用
PyAutoGUI使用Python来控制鼠标和键盘。PyAutoGUI可以在Windwos,macOS、Linux上跑。安装:pip install pyautoguiPyAutoGUI的特性:①移动鼠标或点击或输入;②发送按键到应用程序上;③找图,拿个图片,然后在屏幕上找到这个图;④调整应用窗口大小,放大,缩小等;⑤显示消息框进行交互。代码如下:import pyautoguiif __name__ == '__main__': screenWi原创 2021-08-31 09:13:26 · 1050 阅读 · 0 评论 -
Python笔记-获取某贴吧页面所有的贴吧id
这里要注意,获取贴吧ID有防爬虫,他会把数据用<!-- -->这个注释掉。运行截图如下:注意要伪造成浏览器,不然获取不到数据代码如下:import requestsimport queueimport timefrom bs4 import BeautifulSoupheader = { 'Host' : 'tieba.baidu.com', 'Accept' : 'text/html,application/xhtml+xml,applica原创 2021-08-10 08:37:12 · 587 阅读 · 0 评论 -
Python笔记-获取某百科页面所有URL(提取某百科所有URL)
程序运行截图如下:这里分析下页面:凡是百度百科的都是在此url上https://baike.baidu.com/item/xxxxx,所以可以直接提取。这里我们用个队列,将这个页面的所有有关的url入队,然后出队列,进行访问:还有个要注意的,要伪造成浏览器,不然会回数据import requestsimport queueimport timefrom bs4 import BeautifulSoupheader = { 'Accep..原创 2021-08-10 08:36:13 · 1569 阅读 · 0 评论 -
Python笔记-Can’t reconnect until invalid transaction is rolled back
原因是没有调用session.rollback()解决方法:@contextmanager def session_scope(self): self.db_engine = create_engine(self.db_config, pool_pre_ping=True) # echo=True if needed to see background SQL Session = sessionmaker(bind=self.db_en原创 2021-07-20 08:01:56 · 3442 阅读 · 0 评论 -
Python笔记-windows平台中Flask打包成exe
这里使用pyinstaller进行打包,先安装他。pip install -i https://pypi.douban.com/simple/ pyinstaller这里的manager.py就是flask的主函数。打包命令:pyinstaller -F manager.py进入其dist中直接运行即可:比如:manager.exe runserver...原创 2021-07-13 12:27:34 · 2284 阅读 · 1 评论 -
Python笔记-BeautifulSoup中find_all的使用及str中trim()
实例是这样的:将titile和Cost提取,出来代码如下:from urllib.request import urlopenfrom bs4 import BeautifulSoupif __name__ == '__main__': html = urlopen("http://www.pythonscraping.com/pages/page3.html") bsObj = BeautifulSoup(html.read(), 'html.parser')原创 2021-07-06 07:44:47 · 1397 阅读 · 0 评论 -
Python&Rabbitmq文档阅读笔记-生产者数据直接送入队列消费者消费
Hello World!使用Pika库连接到Rabbitmq。本次要实现的功能:生产者生直接发送消息到队列中,消费者消费队列中的数据。逻辑结构如下:Rabbitmq的通信协议有很多,这里使用AMQP 0-9-1,其中python对应的库为Pika 1.0.0pip安装此库:python -m pip install pika --upgrade生产者:在发送数据之前需要先建立连接import pikaconnection = pika.BlockingCo原创 2021-03-16 08:42:30 · 687 阅读 · 0 评论 -
Python笔记-uiautomator2环境搭建(安卓模拟器测试环境+windows开发环境)
首先windows安装python3+,以及PyCharmwindows安装相关包:pip install --pre uiautomator2这里安装雷电模拟器,这里要记住,要用雷电模拟器自带的adbwhere adb启动雷电模拟器,开启开发者选项,以及USB调试,以及配置下模拟器IP地址。重启下adbadb kill-serveradb start-server再查询是否检测到设备:adb devices查询到了,再安装ATX。p.原创 2021-03-16 08:37:13 · 2007 阅读 · 0 评论 -
Python笔记-使用uiautomator2编写某APP注册机
这里首先要了解这个app的注册思路。1. 获取当前帐号的分享码。2. 切换帐号进行注册。3. 接入卡商平台,获取手机号及验证码。4. 注册成功插入mysql数据库。5. 绑定新账号的分享码。这里不具体说明:文件结构如下:项目用flask进行管理:account.py为数据库某表模型dbOperator.py对数据库进行操作的类httpOperator.py接入卡商平台phoneOperator.py使用uiautomator2对移动端进行操作ap.原创 2020-08-06 08:39:16 · 993 阅读 · 0 评论 -
Python笔记-字符串转json
导入库:import json这里可以直接用json.loads进行转换即可:如下: #登录 def login(self): url = self.url['loginUrl'].replace("用户名", self.userName).replace("密码", self.password) content = self.handleRequest("GET", url) print("登录url:" + url)原创 2020-08-06 08:37:14 · 1021 阅读 · 0 评论 -
Python笔记-安装python虚拟环境及配置opencv及通过opencv识别颜色
这里以window为例:安装python虚拟环境:安装virtuallenv:pip install virtualenv使用cmd进入指定后目录新建虚拟环境:virtualenv env1这样会生成虚拟环境:这里使用PyCharm进行配置:配置好解释器即可。虚拟环境一般package是空的,不会向我上面那样。下面是安装opencv相关的包:使用腾讯的源安装,这个比较快:pip install opencv-python -i https://.原创 2020-07-30 08:40:46 · 2179 阅读 · 0 评论