pandas and numpy notes

  • 生成随机数

https://chrisalbon.com/python/basics/generating_random_numbers_with_numpy/

  • 随机数放到  randas 的 Series 去

  • 取最大最小值的index, 均值

 

  • panda 的 mode 数是什么意思

出现次数最多的那个数

http://www.datasciencemadesimple.com/mode-function-python-pandas-dataframe-row-column-wise-mode/

  • panda ‘s var() 函数

方差

什么是方差分析 ?

 

 

python 如何在精准的时间间隔执行

比如这段:

输出结果为:

这个一秒间隔算是准的 ,但这是因为程序中什么也没做

加入循环中有耗时大约为30 millisecond的代码 , 这里直接用 time.sleep(0.03)代替

这样的输出结果就和每一秒执行一次的最初设计越来越远

所以, 要计算出 程序执行所占用的时间 , 并在 sleep 里减去这个时间

代码如下

 

 

 

 

How to draw dynamic plot

要求 :  随着数据的更新 , 图表也能更新  ,并且可以自动在图表上添加标注  ,

当前已实现的程度

 

功能是可以动态更新 ,也可以加标注, 保存之前的标注坐标在数组里

 

  • 用到的函数
matplotlib.pyplot.annotate(sxy*args**kwargs)    :   Annotate the point xy with text s.  

 

 

示例代码

a) 在指定坐标加标注    https://jakevdp.github.io/PythonDataScienceHandbook/04.09-text-and-annotation.html

b)

 


2021-04-11   最新

 

 

 

 

 

 

怎么判断两条曲线形状相似

相似性的英文是 :  Similarity Measurement 

  • DTW 算法

https://blog.csdn.net/raym0ndkwan/article/details/45614813

算法介绍

 

https://www.cnblogs.com/luxiaoxun/archive/2013/05/09/3069036.html

算法介绍2

 

https://blog.csdn.net/niuniuyuh/article/details/54809587

算法介绍3

 

https://blog.mythsman.com/2016/04/19/1/

介绍4

http://blog.sciencenet.cn/blog-212252-701037.html

介绍5

https://www.researchgate.net/publication/216301292_Everything_you_know_about_dynamic_time_warping_is_wrong

6

 


https://www.youtube.com/watch?v=_K1OsqCicBY&list=PLQ9wcil_P4A6WkBBRd6Ywsi5HiSe3pBZP&index=3&t=0s

视频讲解


https://www.jianshu.com/p/05bee48cc6a2

python 实现


https://nipunbatra.github.io/blog/2014/dtw.html

python 讲解  ,    最重要的 

 

https://www.cnblogs.com/StrayWolf/articles/6792261.html

中文讲解最好的


DTM 算法的目标是找出一种对应关系  :    x 上的每一个点如何对应到 y

Our aim is to find a mapping between all points of x and y. For instance, x(3) may be mapped to y(4) and so on.

  • hausdorff  距离

    定义 :

    对一条线的每一个点, 计算另一条线上距离它最近的点 ,计为d1 , 对于 d1,d2,d3…..dN 的点集, 取其中的最大值 , 即为hausdorff 距离

用途:

给定一个形状 A  ,找出 A在指定容忍范围内的最相似形状 A0

 

公式:  


  • 双向  Hausdorff 距离

算法 

如果想比较两个曲线有多相像,必须先有模型量化什么是相像, 也就是: 怎么定义 similar

 

参考文章

https://www.cnblogs.com/luxiaoxun/archive/2013/05/09/3069036.html#undefined

Dynamic Time Warping 动态时间规整算法


 

到现在为止的实现方法(2019-05-16)

缺点是速度太慢

 

怎么提升速度 ?

a)  合并数据,  一分钟有 120个,用1个来替代

 

 

  • 有人做的python 库

https://jekel.me/2017/Comparing-measures-of-similarity-between-curves/

 

拿两条 正弦波图形测试

 

python scripts

  • 画实时k线

 

参考  https://stackoverflow.com/questions/4098131/how-to-update-a-plot-in-matplotlib

最后一个答案

how python work as ZMP client

  • first install ZMQ , how to install see “python note “

注意在中文机器不能用这个命令 ;     pip install pyzmq

因为有解码问题

  • how to make a hello world in python :

https://learning-0mq-with-pyzmq.readthedocs.io/en/latest/pyzmq/basics.html#installation

 

  • 先启动 c++ 的 ZMQ server , 然后运行这个脚本

  • 以上只是传string, 怎么传 json

https://stackoverflow.com/questions/37765847/send-json-object-through-zmq-with-c-client-python-server

https://pyzmq.readthedocs.io/en/latest/serialization.html

 

    • 没必要一定传json , 对于复杂的msg, 可以传递用空格分隔字符串, 比如

这样的字符串:aa bb cc dd ee ff gg hh …. 也足够用了

改造后的python client 如下 :

 

 

c++ server code :

 

其中 split string 功能代码来自于:

https://www.fluentcpp.com/2017/04/21/how-to-split-a-string-in-c/

 

如何取出 message_t 里面的string 来自:

https://stackoverflow.com/questions/10901240/zeromq-how-to-access-tcp-message-in-c

 

PS : very important ,  after python client send , can not skip 

because send and recv must be pair 

 

python note

  • Python version   windows 64bit  V3.6.5
  • get all available modules ,  in python shell ,

current in my machine, the list is :

 

  • call webservice

From : https://stackoverflow.com/questions/2792650/import-error-no-module-name-urllib2

改为取新浪财经实时数据

 

  • Python Machine Learning Tutorial

https://www.python-course.eu/neural_networks_with_python_numpy.php

  • 编辑器

Visual Studio Code

  • 如何执行 python 脚本

  • 如何安装 packages

来源网站 : https://solarianprogrammer.com/2017/02/25/install-numpy-scipy-matplotlib-python-3-windows/

进入 Scripts 目录 , 执行

这是因为我安装的是python 64bit V3.6.5 , 如果是其他版本, 另外找对应的 。

安装成功后,提示 :

 

如果提示

说明版本不对


再安装Scipy


再安装 matplotlib


安装mysql connector

 

全部安装完成后 , 尝试运行

如果能正确显示图形, 就说明安装无误

 

  • 安装 sk-learn

在 :  https://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn

下载 scikit_learn‑0.20.2‑cp36‑cp36m‑win_amd64.whl

0.20.2 :  sk learn 版本号

cp36 : python 版本号

win_amd64 : 机器环境

然后进 Scripts目录执行

 

 

  • 如何画 subplot

 

  • 给出点数组,x轴为时间, y轴为整型值, 计算直线的斜率(slope)

把 datetime类型用timestamp转换为float ,然后才可以计算斜率

来自: https://stackoverflow.com/questions/35337299/python-datetime-to-float-with-millisecond-precision

  • 15分钟以前,

15秒以前

 

  • pysql 查询语句带参数

 

  • 安装 zmq

注意不要 pip install pyzmq ,因为会出中文乱码问题

去这个网站 https://pypi.org/project/pyzmq/#files  

因为本机是 win10 64bit , 安装了python 3.6.5

所以下载这个文件 pyzmq-17.1.2-cp36-cp36m-win_amd64.whl

然后 :

  • 写log

  • 顺序生成数组

从1开始,生成17个, 每次自增1

 

  • 安装 pandas  (数据分析工具)

  • 安装 seaborn

 

  • 安装 PyGeometry