一个简单的Python模块,包含一个在C++中优化的现成的线性秩过滤器。
rank_filter的Python项目详细描述
秩滤波器
动机
这个包的目的是提供一个有效的线性秩序 用Python绑定编写C++的过滤器。可以是单程的,也可以是双程的 精度作为输入浮动。它需要作为等效百分位数 发现scipy中的筛选器太慢,并且不必要地通用。 在维格拉没有对等的。
要求
要构建此软件包,需要满足以下要求。
- 巨蟒(2.7.x或3.5.x)
- 增强(1.56.0或更高版本)
- numpy(1.7.0或更高版本)
- cython(0.23.0或更高版本)
- 设置工具(18.0或更高版本) < > >
安装
最简单的安装方法是安装conda软件包。 或者,可以从 pip 安装,但这需要 C++编译器和最近版本的 StudioToops>
建筑
有几种方法可以构建包。
- 标准的python构建和安装。
- Conda配方构建和安装。
- 制作并安装。 < > >
任何一种形式的vanilla安装基本上都应该是等效的。
入门
要开始,只需克隆repo并将目录更改为repo即可。
git clone https://github.com/nanshe-org/rank_filter cd rank_filter
使用python
要直接使用python构建/安装,只需运行以下命令即可。
python setup.py install
使用conda
要使用conda构建/安装,只需运行以下命令即可。
conda build rank_filter.recipe conda install --use-local rank_filter.
使用cmake
为了找到boost include和库,安装了boost目录 to必须设置为 boost\u root
cmake -DBOOST_ROOT=<path-to-Boost-root> .
此外,cmake安装程序还将拾取这些变量,如果它们设置在 环境和未提供的。
export BOOST_ROOT=<path-to-Boost-root> cmake .
另外,可以使用 python_可执行文件 变量。
检查
在构建Python绑定之前,检查C++代码是否值得 通过自己的测试套件。这可以使用 命令B埃洛不需要运行此阶段,但它将运行 每次建造的时候。这些测试不能保证python 模块将工作。它们验证的是C++代码工作。
make check
建筑
使用 make 可以轻松地进行构建。这将创建一个共享对象 在slib目录中,python可以将其作为模块导入。AS 在检查部分中提到,C++测试将首先运行。如果 它们失败了,python模块将不会被构建。他们不能保证 python模块将工作。相反,可以使用测试阶段 验证模块。
make
测试
一旦构建了python模块,就值得测试它是否工作。 这可以使用下面的命令通过 make 完成。不同于C++ 测试,这些是使用nose运行测试的python测试。测试 是在C++测试中使用的Python类似物。他们不仅 验证基本命令是否运行,但它们传递的结果是否正确 仅限。
make test
安装
在建造和测试之后,是时候安装了。使用 使 下面的命令将在已标识的python的 允许使用该文件夹导入此模块的网站包文件夹 蟒蛇. < /P>
make install
清洁
还有一些关于清洁的附加选项。有可能 清除所有生成中介(包括cmake生成的文件)离开 只有最终的产品。按如下方式拨打电话即可完成此操作。
git clone https://github.com/nanshe-org/rank_filter cd rank_filter0
如果需要消除构建产品以及所有 中间产物,则可以使用下面的调用。
git clone https://github.com/nanshe-org/rank_filter cd rank_filter1