使用pybind11的cppedm的python包装器
EDM-SugiharaLab的Python项目详细描述
经验动态建模(EDM)
这个包为EDM analysis的cppEDM库提供了一个python/pandas数据帧接口。Documentation可在pyEDM找到。
功能包括:
- 单纯形投影(Sugihara和1990年5月)
- 序列局部加权全局线性映射(s-map)(Sugihara 1994)
- 多变量嵌入(Dixon等人1999年)
- 收敛交叉映射(Sugihara等人2012年)
- 多视图嵌入(YE和Sugihara 2016)
安装
不幸的是,我们没有资源为各种计算机平台提供预构建的二进制发行版。用户需要首先在自己的机器上构建cppedm库,然后使用pip安装python包。在OSX和Linux上,这需要G++,在Windows上,需要Microsoft Visual Studio编译器(MSVC),可以从Build Tools for Visual Studio 2019
获得。只需要windows sdk。
请注意,Eigen C++ Template Library是构建cppedm所必需的。假定Eigen
目录在编译器INCLUDE
路径中可用。如果没有,可以将目录添加到makefile中的CFLAGS -I
选项中,适当定义INCLUDE
环境变量,或者使用CFLAGS=
重写make命令行以指定位置。
OSX和Linux
- 下载pyedm:
git clone https://github.com/SugiharaLab/pyEDM
- 构建cppedm库:
cd pyEDM/cppEDM/src; make
- 生成并安装程序包:
cd ../..; python -m pip install . --user
窗口
- 下载pyedm:
git clone https://github.com/SugiharaLab/pyEDM
- 构建cppedm库:
cd pyEDM\cppEDM\src; nmake /f makefile.windows
- 生成并安装程序包:
cd ..\..; python -m pip install . --user
用法
python提示符下的示例用法:
>>>importEDM>>>EDM.Examples()
参考文献
Sugihara G.和May R.1990。非线性预测作为一种判别方法 时间序列测量误差引起的混沌。自然,344:734–741.
Sugihara G.1994年。自然分类的非线性预测 时间序列。哲学交易:物理科学和 工程,348(1688):477-495.
Dixon,P.A.,M.Milicich和G.Sugihara,1999年。幼虫供应的周期性波动。科学283:1528-1530。
Sugihara G.,May R.,Ye H.,Xieh C.,Deyle E.,Fogarty M.,Munch S.,2012年。 探测复杂生态系统中的因果关系。科学338:496-500。
Ye H.,和G.Sugihara,2016年。互联网络中的信息杠杆 生态系统:克服维度的诅咒。科学353:922–925。