%global _empty_manifest_terminate_build 0 Name: python-rollingrank Version: 0.3.1 Release: 1 Summary: fast rolling rank for numpy License: MIT URL: https://github.com/contribu/rollingrank Source0: https://mirrors.nju.edu.cn/pypi/web/packages/17/11/2a89a4b323f14ba51227b52e2fd12b10bdb6144d225a5cd84eeca1273f4d/rollingrank-0.3.1.tar.gz BuildArch: noarch %description ## rollingrank rollingrank is a fast implementation of rolling rank transformation (described as the following code). ```python import pandas as pd # x is numpy array def rollingrank(x, window=None): def to_rank(x): # result[i] is the rank of x[i] in x return np.sum(np.less(x, x[-1])) return pd.Series(x).rolling(window).apply(to_rank).values ``` ## Motivation Rolling rank is a good tool to create features for time series prediction. However, rolling rank was not easy to use in python. There were no exact methods to do it. The simple implementation using pandas and numpy is too slow. ## Performance |Implementation|Complexity| |:-:|:-:| |rollingrank|O(n * log(w))| |pandas rolling + numpy|O(n * w)| n: input length w: rolling window size ## Install ```bash pip install rollingrank ``` ## Example ```python import numpy as np import rollingrank x = np.array([0.1, 0.2, 0.3, 0.25, 0.1, 0.2, 0.3]) y = rollingrank.rollingrank(x, window=3) print(y) # [nan nan 2. 1. 0. 1. 2.] y = rollingrank.rollingrank(x, window=3, pct=True) print(y) # [nan nan 1. 0.5 0. 0.5 1. ] ``` ## rci RCI is also implemented because fast implementation is not found. https://docs.anychart.com/Stock_Charts/Technical_Indicators/Mathematical_Description#rank_correlation_index ## Kaggle Example https://www.kaggle.com/bakuage/rollingrank-example ## Development test ```bash python -m unittest discover tests ``` build/upload ```bash python setup.py sdist twine upload --repository pypitest dist/* twine upload --repository pypi dist/* ``` ## TODO - support axis %package -n python3-rollingrank Summary: fast rolling rank for numpy Provides: python-rollingrank BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-rollingrank ## rollingrank rollingrank is a fast implementation of rolling rank transformation (described as the following code). ```python import pandas as pd # x is numpy array def rollingrank(x, window=None): def to_rank(x): # result[i] is the rank of x[i] in x return np.sum(np.less(x, x[-1])) return pd.Series(x).rolling(window).apply(to_rank).values ``` ## Motivation Rolling rank is a good tool to create features for time series prediction. However, rolling rank was not easy to use in python. There were no exact methods to do it. The simple implementation using pandas and numpy is too slow. ## Performance |Implementation|Complexity| |:-:|:-:| |rollingrank|O(n * log(w))| |pandas rolling + numpy|O(n * w)| n: input length w: rolling window size ## Install ```bash pip install rollingrank ``` ## Example ```python import numpy as np import rollingrank x = np.array([0.1, 0.2, 0.3, 0.25, 0.1, 0.2, 0.3]) y = rollingrank.rollingrank(x, window=3) print(y) # [nan nan 2. 1. 0. 1. 2.] y = rollingrank.rollingrank(x, window=3, pct=True) print(y) # [nan nan 1. 0.5 0. 0.5 1. ] ``` ## rci RCI is also implemented because fast implementation is not found. https://docs.anychart.com/Stock_Charts/Technical_Indicators/Mathematical_Description#rank_correlation_index ## Kaggle Example https://www.kaggle.com/bakuage/rollingrank-example ## Development test ```bash python -m unittest discover tests ``` build/upload ```bash python setup.py sdist twine upload --repository pypitest dist/* twine upload --repository pypi dist/* ``` ## TODO - support axis %package help Summary: Development documents and examples for rollingrank Provides: python3-rollingrank-doc %description help ## rollingrank rollingrank is a fast implementation of rolling rank transformation (described as the following code). ```python import pandas as pd # x is numpy array def rollingrank(x, window=None): def to_rank(x): # result[i] is the rank of x[i] in x return np.sum(np.less(x, x[-1])) return pd.Series(x).rolling(window).apply(to_rank).values ``` ## Motivation Rolling rank is a good tool to create features for time series prediction. However, rolling rank was not easy to use in python. There were no exact methods to do it. The simple implementation using pandas and numpy is too slow. ## Performance |Implementation|Complexity| |:-:|:-:| |rollingrank|O(n * log(w))| |pandas rolling + numpy|O(n * w)| n: input length w: rolling window size ## Install ```bash pip install rollingrank ``` ## Example ```python import numpy as np import rollingrank x = np.array([0.1, 0.2, 0.3, 0.25, 0.1, 0.2, 0.3]) y = rollingrank.rollingrank(x, window=3) print(y) # [nan nan 2. 1. 0. 1. 2.] y = rollingrank.rollingrank(x, window=3, pct=True) print(y) # [nan nan 1. 0.5 0. 0.5 1. ] ``` ## rci RCI is also implemented because fast implementation is not found. https://docs.anychart.com/Stock_Charts/Technical_Indicators/Mathematical_Description#rank_correlation_index ## Kaggle Example https://www.kaggle.com/bakuage/rollingrank-example ## Development test ```bash python -m unittest discover tests ``` build/upload ```bash python setup.py sdist twine upload --repository pypitest dist/* twine upload --repository pypi dist/* ``` ## TODO - support axis %prep %autosetup -n rollingrank-0.3.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-rollingrank -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed May 10 2023 Python_Bot - 0.3.1-1 - Package Spec generated