自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

人太健忘了,需要有个地方记录

从不专精,永远好奇

  • 博客(129)
  • 资源 (2)
  • 收藏
  • 关注

原创 windows本地运行dreamtalk踩坑总结

第三个依赖是ffmpeg的python绑定,叫pyav,这个比较简单,只要pip install av就行了。

2024-04-12 16:45:23 762

原创 使用asammdf中把mdf转成dataframe时发现一个问题

知道了这点以后,只需要把时间戳去重排序,就可以和转出的dataframe拼接了,因为调用to_dataframe后,会丢失时间戳信息,所以需要从原始数据中取一个信号的时间戳做dataframe的时间戳列。

2024-04-09 16:53:25 218

原创 发现一个pandas种concat和merge的区别

pandas中,concat和merge都可以用来拼接数据,但是这两个方法有什么区别呢,常规的区别今天暂且不提,主要分享一个我近期发现的区别,主要是针对两个df有重名的列的情况,先看concat。可以看到,merge会对同名的列进行重命名,而且不论是第一个df,还是第二个df,名字都会被改变,而且规则是,左边的df名字会被加_x,右边的df会加_y。可以看到,当两个df有同名的列的时候,concat不会做任何处理,之前是什么名字,拼接后还是什么名字,再看merge。

2024-04-01 15:57:35 165

原创 如何简单的复制dataframe列

今天在做项目的时候无意中发现了dataframe的一个特性,就是批量复制列的功能,而且列名是一样的,一般情况下,如果用df['xxx'] = xxx的方式,是没办法复制多个列名一样的列的,操作一次只会覆盖上次的赋值,如果要实现一个dataframe有两个同名的列,可以用pd.concat方法把两个含有同名列的dataframe拼接到一起,但是今天这种方法操作很简单,只需要一个df,就能复制同名列,废话不多说,直接上代码,其实也很简单,可以看到,只要将筛选的列名list重复写几次,就能轻松的实现复制列功能。

2024-03-28 10:00:04 242

原创 pandas的drop_duplicates无法去重问题

之前没研究过pandas的去重方法,今天用了一下,发现这个方法并不是那么好用,我的需求是去除所有列的重复值,并保留第一个重复的值,按我的想法应该是下面这样写。当然这样数据的索引是无法跟之前的对应起来了,所以我猜pandas是想保留之前的数据的对应关系的,一旦有操作要破坏这种对应,它就不会执行。如图所示,并没有删除重复值,所以我只能一个一个列的删,删完在重新拼接在一起,但是结果却不尽如人意,

2024-01-04 09:31:25 479

原创 关于python解析mf4中二维信号数据的注意事项

python解析mf4中的信号数据一般用np.ndarray存储,但是mf4中的一个信号有时不一定是一维数据,有时会是一个二维的,没错,就是一个信号数据就是二维的,这时候,np数组的每个元素也是一个数组,这个时候就要注意了,当一个mf4有这种数据时,这时转成dataframe的时候是下图这样的。所以,当遇到这种信号的时候,需要把这种二维数据去掉,否则会影响df的拼接,经过打印知道,这种二维信号的单个元素一般是np.record类型,所以通过type或者isinstance类型判断,把这种数据去掉,解决!

2023-12-27 10:31:50 451

原创 关于jinja2高版本api变化导致notebook导出html失败的问题

从报错信息中并不能看出什么问题,但是从报错信息的上一行,有个导入nbconvert的语句,于是推测跟nbconvert有关,于是有了开头的测试语句,发现是jinja2的版本问题,于是降了一个版本,装了3.0.3,解决!nubconvert会从jinja2导入一个叫contextfilter的东西,但是新版本已经没有了,这会导致我导出一个notebook到html时报错,具体报错信息如下。最新jinja2版本已经到了3.1.2,但是nbconvert引用的应该是老版本,具体代码报错如下。

2023-12-11 16:22:07 587

原创 pandas用字符串筛选索引发现的问题

奇怪吧,后来查资料说它会把contains里的字符串当做正则表达式!

2023-12-07 14:27:10 365

原创 win32com操作office的一个坑

pywin32是一个可以操作office软件的包,它可以像人一样打开office软件,然后通过api做一些操作,然后保存关闭。

2023-11-10 15:23:33 115

原创 很可惜,pyinstaller不是万能的

近期活不算少,但是真正新的东西很少,基本都是做些相似的功能,所以有精力想想之前悬而未决的问题,比如前两天写的加快软件启动速度的探索,这几天又想起一个之前没有解决的问题,这个问题之前也在博客写过,就是用candas解析blf的功能,当时在没打包之前测试功能都是没问题,但是一打包就会报缺dll,当时没搜到特别准确的答案,后来主观判断是库冲突,但谁知道pyinstaller报错的信息其实是很准确的,就是缺dll,只不没具体报是缺什么dll,导致我当时认为它的报错有问题,不准确。

2023-10-02 21:47:11 241 3

原创 python中使用多线程批量导入包

因为有些项目的依赖太多,所以导致每个文件头部都包含大量import语句,用来导入必要的包,如果量不多,这样的话对启动的速度影响不是很明显,但是如果导入的包非常多,各个文件还有重复的导入,那样就会导致程序的启动时间大大加长,特别像带界面的程序,程序还什么都没干,就要耗费5-6秒的时间启动,这实在是无法接受的。主要是当时开发功能的时候没有考虑这么多,甚至没想到包的导入对启动速度的影响会这么明显,在这种情况下,导致我必须优化一下。如果用多线程,大概是这样。

2023-09-23 08:56:54 364

原创 发现matplotlib的一个问题

但是如果改成marker='o',就会成为折线图。感觉有点奇怪,所以记下来。

2023-09-16 16:48:01 426

原创 用sklearn实现线性回归和岭回归

在以上代码中,通过使用load_boston函数加载波士顿房价数据集,使用train_test_split将数据集拆分为训练集和测试集。然后,使用Ridge实例化岭回归模型,并将alpha值设置为1。最后,使用fit方法训练模型并使用predict方法进行预测。岭回归是一种线性回归算法,它通过L2正则化来解决过拟合问题。在sklearn中,可以使用Ridge类来实现岭回归。在sklearn中,可以使用线性回归模型做多变量回归。这样,我们就得到了一个多变量回归模型,并使用新数据进行了预测。

2023-09-04 08:49:14 540

原创 python中list的两个无返回值函数

list是python中一个比较常用的数据结构,相当于其它语言的数据,list有很多方法,但是有的方法有返回值,有的没有返回值,因为多数情况下我调用函数的时候,习惯的认为函数会有返回值,但是如果突然出来个无返回值的,就会导致接收返回值的变量为None,从而导致后面的计算错误。还有一个函数,sort,这个结果差不多,都是直接影响调用者的值,而不是生成一个新的排序的列表返回。可以看到,l3的值是None,l1的值是合并后的列表。所以,遇到这种没返回值的函数要注意一下。

2023-09-02 16:35:35 270

原创 pandas中cut函数的问题

可以看到,虽然bins中我传了0,但是因为默认它的区间是左开右闭,所以没包含0,而且我也没加include_lowest参数,导致漏了结果,当然这个跟区间开闭参数也脱不开关系,因为一开一闭,总会漏掉一面,不是漏前面就是漏后面,所以要想统计全,需要两个参数结合使用,区间它默认用左开右闭,那就先按默认的来,当然在这种情况下,最小数据如果落在第一个区间,刚好被漏掉,此时,再加一个include_lowest参数则正好能补上漏掉的数据,这样就比较完美了。加上这个参数后得到结果。可以发现,已经可以把0补上了。

2023-08-24 14:58:24 270

原创 问AI一个严肃的问题

然后我就问,取代真的不好吗,因为在我看来,取代没什么不好,一些低级重复的工作,本身就意义不大,本来就该机器做,不是吗,这次它再次展现了和稀泥的强大能力,就是他回答问题的时候从不走极端,总是感觉考虑的特别周到,任何一件事都不是简单的好和坏,而是应该客观的分析,这一点我真的佩服chatgpt,而且它的回答,大部分都能让我满意,不错。最后一个问题就是我想像的场景,我异想天开的以为,如果AI取代人类,替人类工作,干活,我们就真的能回到树上,吃完睡,睡完吃,吃饱了生猴子,过上这种无(天伦)聊(之乐)的生活吗?

2023-08-15 10:31:10 6329 7

原创 使用CANape查看blf数据

blf数据不像mf4那样自带信号数据库,因为它是记日志用的,一般情况下要尽可能的小,所以,解析blf数据要单独有个数据库文件,一般是dbc或者arxml,我这里用dbc做示范,解析之前要先加载dbc,当然具体操作其实很简单,只需要两步即可。直接拖拽文件到绘图窗口,弹出下面界面,依次选择Insert signals into new window--> Graphic window,然后就会弹出信号界面了,跟打开mf4文件一样。点击add,选择要加载的dbc文件 ,点击ok关闭。双击相应的信号就能看曲线了。

2023-08-10 16:40:23 3232 2

原创 pandas绘制堆叠柱状图并添加数值显示

需要注意的其实只有一点,就是柱子的遍历顺序,普通的柱状图结构简单,就是从下到上遍历(我的是横向的),如果是堆叠的会怎么遍历呢,经过观察是广度优先的,也就是说,如果一个柱子是由四个子柱子组成,它会呈N形遍历,也就是先遍历同一个类型的所有柱子,再遍历其它的,知道这这点,其实就好办了,废话不多说,直接上代码。当然如果数字显示的位置不太准,可以自己慢慢调,用pandas直接画图还是比较简洁的,如果用matplotlib画,可能代码行数稍微多点,所以建议熟悉pandas的人还是用pandas画好点。

2023-07-10 14:48:56 1489

原创 pandas给条形图顶部加数字显示以及拟合线

第二个是给条形图加拟合线,这个拟合线其实就是给变量算一个正态分布,正太分布一共需要两个参数,一个是均值,一个是标准差,这个很容易算然后再根据x值拟合下y值,这个需要借助scipy的一个函数来算,就是norm.pdf(),大概代码如下。其实用hist图已经可以看到显示效果,但是因为要在图形顶部显示数字,所以又手动分箱求了下具体数值,这个不知道有没有更简洁的实现方法,其它的就是求下正太分布,然后把曲线再绘制到条形图上,效果如下。

2023-06-25 09:41:38 519

原创 xlwings读取excel全部数据的问题

用excel读取表格的全部数据跟pandas读取是不一样的,pandas的兼容性更好,不管用什么后端引擎,如果中间或者某行有空数据,它会自动置空,不会影响其它数据,但是excel就不一样了,用excel读取必须要指定单元格的坐标,这样就会有个问题,如果我的数据第一列的长度和第二列的长度不一样,那么用下面的代码就会缺数据。

2023-06-01 14:14:18 555

原创 vs code中jupyter变卡的原因

我在项目目录有个notebook,经常用它写一些探索性质的代码,然后近期就发现运行一段非常小的代码也要十几秒,如果重复运行则没问题,只要改一点代码,就又会非常慢,我开始以为是vs code的问题,但是我今天用它的兄弟编辑器,发现很快,所以推断不是编辑器的问题,然后我就打开文件管理器,无意中发现,这个文件已经达到178M大小了,突然才反应过来,可能是因为文件太大了,于是备份了一个,把这个文件内容全部清空,发现好了。

2023-05-17 08:56:00 1529

原创 pyinstaller中hook文件作用以及编写

没办法,我想试试直接拷源码行不行,我拷过来后发现可以,这时总算能有解决办法了,但是我觉得还不完美,因为我事实上还没有找到根本原因,后来就开始研究hook文件,发现一般hook文件,代码很简单,就收集一下子模块,或者data就是资源文件,哎我突然灵光一闪,是不是我这个报错只是缺资源文件,后来我就只把模板拷过来,发现也管用,至此才找到问题根本原因,pptx的代码其实已经编译过来了,只是没有打包资源文件。

2023-05-11 14:26:54 665

原创 pandas中iloc和loc的区别

iloc指的是行数,列数,跟行列索引没有本质关系,但是两者可以相同,当且仅当行、列索引是自然数列,因为它表示行、列数,所以,它只能是整数,不能是其它类型。loc指的是行、列索引,行、列索引没有类型要求,可以是整型,也可以是其它类型,比如浮点型、字符串、datetime。

2023-04-07 13:49:26 862

原创 文心一言发布前一天,GPT-4震撼发布

但是遗憾的是,百度发布会用的不是实时演示,而是用的录像,而且根据后期的内测看,功能上跟chatgpt还有些差距,但是就在文心一言发布前一天,openai又升级了一版,gpt-4震撼发布,这个版本性能比chatgpt还要6,是名副其实的最强ai,消息一出,哀鸿遍野,大模型对工作岗位的冲击无法让人忽视,大家都紧张起来,感觉ai马上就要把人取代,甚至有人说ai有毁灭人类的能力,马斯克等上千名科学家甚至极力反对再这样升级ai模型,要求openai暂停6个月,那么ai到底会走向何方呢,我们拭目以待把吧。

2023-03-30 15:02:23 506

原创 python中使用candas解析转换blf文件

我这个代码最后是把dataframe转成了mf4,用canape看比较方便。这个库其实还是蛮好用的,但是开发的工具最后没有用这个库,而是用底层库cantools和python-can解析的,原因是用这个库后,开发时功能是没问题的,但是用pyinstaller打包后就有问题了,总是报错,查了资料貌似有共享库冲突,最终没有解决,所以不得不放弃了,如果不打包还是ok的,高层api还是要方便一些,就是参数没太懂为什么要搞成那个样子。

2023-03-30 14:09:47 1761 7

原创 python中使用cantools和can工具包解析blf文件

可以发现,时间戳解析出来了,其它的数据都是16进制,没法直接看,当然我们如果熟悉blf格式,可以自己把数据还原出来,但是既然已经用第三方库,我们当然就不用自己解析了,而且仔细观察一下即可发现,之前的加载dbc并没有用上,所以这时一个重要的函数登场了,那就是dbc.decode_message(id,data),具体代码如下。一般情况下,解析blf需要dbc文件,当然其实不用dbc也可以,只不过解析比较麻烦,推荐还是配合dbc解析,这个也是我们最常用的办法。加载完dbc文件,就可以解析blf文件了,代码。

2023-03-30 13:38:53 7040 23

原创 pyinstaller打包candas出现缺模块

candas依赖。

2023-03-15 14:25:45 285

原创 状态空间方法的时间序列分析

继续看statsmodels文档,发现还有一种比较流行的时间序列分析模型,叫做状态空间法,但很可惜,这个方法代码没跑通,我想的是如果先能跑出结果,那自然是好,跑完我再慢慢看原理,没想到没跑通,好吧,那我就再深入的研究一下原理,于是我就开始百度,但是这不百度不知道,这个方法甚至有一本书专门介绍,名字就是本文标题《状态空间方法的时间序列分析》,我靠,我寻思着看几天就能完事,但是我觉得算法原理应该不至于写一本书,书里应该还有其它内容。

2023-02-15 14:41:33 254

原创 阿里天池竞赛记录

这个代码实现是一个var算法,翻译过来就是向量自回归算法,用来处理多列的时序数据建模,在深度学习爆火的当下,大家已经很熟悉,处理时序预测有专门的神经网络lstm,trasformer等,但是没办法,官方不让用,因为这个算法要用到控制器里,而神经网络模型首先比较大,第二,可解释性比较差,所以不太适合,所以只能用传统的公式模型,虽然这些传统模型在神经网络的光辉下已经不再那么耀眼,但是技术含量是丝毫不含糊的,理解起来比神经网络更难,因为涉及到的理论知识特别多。

2023-02-10 16:24:32 847

原创 深度神经网络梯度消失和梯度爆炸问题

当神经网络层数过多时,就容易出现梯度消失和梯度爆炸的问题,什么是梯度爆炸或者梯度消失,梯度爆炸就是一般在开始训练时,参数都是随机数,导致loss太大,反向传播的时候就会出现梯度太大,或者梯度消失,从而导致网络无法收敛,解决方法是梯度裁剪。 梯度裁剪有普通裁剪和L2范数裁剪,每种方法又包含全局裁剪和部分裁剪两种。

2023-02-07 09:38:27 277

原创 卷积神经网络中各个层对数据形状的改变

然后还有一个层,池化层,Pool2D,这个层也会改变数据形状,具体改变数据的高和宽,一般而言,它的参数设为2*2,最后的结果高度和宽度变为原来的一半,以手写字数据为例,比如输入的数据是N*1*28*28,经过一个卷积层(参数为输入通道1,输出通道32),那么输出结果就是N*32*28*28,再经过一个池化层(参数为2*2),那么输出结果为N*32*14*14。本文主要记录下近期研究的关键点,这块开始学的时候有点懵逼。

2023-02-06 14:39:46 450

原创 记录一个pyinstaller的问题(我自己的锅)

那天在项目里加了一个paddlets的测试文件夹,然后在里面导入一个公共模块失败了,我就随手在项目根目录加了一个__init__.py文件,正常不应该加的,即使加了也不管用,结果今天用pyinstaller打包的时候突然就少文件,开始我很纳闷,因为我没动过关于打包的任何东西,经过几个小时排查,对比老版本的文件才发现这个问题,多了个__init__.py,应该是影响pyinstaller构建依赖图,最后导致打包少文件,谨以此警示。

2023-02-02 13:17:54 99

原创 paddle2.3实现回归模型

做深度学习框架必不可少,因为一些重复的工作框架已经帮我们实现好,我们只需要构建自己的神经网络,准备数据训练即可。目前主流的框架有pytorch,tensorflow,国内百度有paddlepaddle,华为有mindspore,paddle作为国内起步比较早的框架,生态已经非常成熟,api也很好少上手,虽然网上的教程不多,但是官网的教程和文档非常完备,结合pytorch和tensorflow的有点,动静态图结合,同时支持分布式训练,所以我选择了paddle。经过5000次的训练,可以看到拟合效果还不错。

2023-02-01 15:11:09 495

转载 使用matplotlib绘制高级图表

树形图的形状一般是一个上下颠倒的树,其根部是一个没有父成员的根节点,之后从根节点开始用线连接子成员,使子成员变为子节点,直至线的末端为没有子成员的树叶节点为止。桑基图中包含若干条从左到右延展的分支,每条分支的宽度代表着数据流量的大小,且所有主支宽度的总和等于所有分支宽度的总和,常见于能源、材料成分等场景或金融领域。matplotlib除了可以绘制简单的图表,还可以绘制一些常见的高级图表,包括等高线图、矢量场流线图、棉棒图、哑铃图、甘特图、人口金字塔图、漏斗图、桑基图、树状图和华夫饼图。

2022-12-20 13:38:58 1289

原创 matplotlib中plt.figure()的注意事项

这里我每个循环调用一下plt.figure(),生成一个新的画布,怎么保证是新的画布,这个从后面我打印的id可以看到,然后绘图保存,这个函数有个参数,就是传一个数字,也就是可以写成这样plt.figure(i),这里就要注意了,如果每次传的数字相同,返回的会是同一个画布,而且只要调用后,画布就一直在内存里,下次再调用的时候就会返回这个已经存在的画布。今天在改功能就掉进了这个坑,当我写两个循环时,发现画的图都重叠在一起了。比如有这样一个需求,我要画10个图然后画一个,保存一个,这时候我可能要这样写代码。

2022-12-19 17:14:52 569

原创 浅谈第三方图表库绘图原理

其实,总结下来,我觉得带坐标系的主要有两种图,一种是有序图,一种是无序图,当然这两个分类是我定义,那么什么是有序图,有序图就是横坐标是有序的,并且一般是从小到大顺序,或者是时间,或者数字,常见的基本就这两种,纵坐标一般表示因变量,表示随着x的变化,y的变化,图的形式一般是散点或者折线。因为近半年时间都在做数据分析,可视化方面的工作,接触了很多图表库,python生态里图表库是非常多的,有窗口形式的,有web网页形式的,技术不尽相同,但是绘图原理基本差不多。另外一种是无序图表。

2022-12-15 13:39:00 169

原创 Matplotlib箱线图日期轴问题

matplotlib中的dateformatter有时会抽风导致时间倒回1970,有没有大神知道怎么解决。

2022-12-13 10:37:32 337

原创 python解析mdf或mf4文件利器---asammdf

asammdf是python解析mdf/mf4文件的主流第三方包,包含了很多实用的方法做mdf/mf4文件解析,同时提供数据格式转换,绘图,合并等一系列好用的方法,应该说是做汽车数据分析的必备利器,希望本篇文章能祝你一臂之力。

2022-11-24 15:16:37 8504 16

原创 python打包exe工具使用心得

为了看看有没有解决方案,我又试了两个打包工具,一个是nuitka,这个工具是唯一寄予厚望的,因为它的打包思路是把python代码转成c,再经过优化,再编译成二进制,这个从思路上来说,感觉就像把python转成c一样,但是很遗憾,在我的项目上没有打包成功,而且耗时过长,并且看官网说目前对pyqt5支持的并不完整,所以可能就算打包成功,也不知道能不能运行,而且出来问题,不知道怎么排查,总之这个工具兼容性不是特别好,特别是你的程序依赖了特别多的第三包时尤其如此,最后果断放弃了。

2022-11-18 16:23:07 345 4

原创 分析工具QCustomPlot2版

【代码】分析工具QCustomPlot2版。

2022-11-15 14:14:56 728 2

dlib-19.24.1-py3.9-win-amd64.egg

这个包目前线上windows平台只有py3.6的版本,其它python版本需要自己编译,自己编译需要安装cmake,visual studio,而且还得加参数编译,去掉gif支持我已经麻烦了,自己编译了一把,顺便下了个蛋,给不想自己编译的小伙伴使用。

2024-04-11

QCustomPlot2

QCustomPlot2是一个CPP版本的Qcustomplot2的python封装,用于高性能绘图,同类型的库有pyqtgraph,qtchart,单个人感觉比pyqtgraph好用,bug少

2023-09-19

Oracle_11g_R2安装教程

这个是Oracle11g的详细安装教程,欢迎大家下载

2013-06-09

ascll表完整版,不知道为啥标题还有字数限制

这里包括了所有字符的ascll码,方便程序员随时查阅,有需要的可以下载下来看下,不需要的也可以下载下来看下

2013-06-09

空空如也

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

TA关注的人

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