In [1]:
import os
import sys
sys.path.append("..")

In [23]:
from saxpy import paa


---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-23-f87a1befe57c> in <module>()
----> 1 from saxpy import paa

ModuleNotFoundError: No module named 'saxpy'

In [24]:
import numpy as np
def paa(series, paa_segments):
    """PAA implementation."""
    series_len = len(series)

    # check for the trivial case
    if (series_len == paa_segments):
        return np.copy(series)
    else:
        res = np.zeros(paa_segments)
        if (series_len % paa_segments == 0):
            inc = series_len // paa_segments
            for i in range(0, series_len):
                idx = i // inc
                res[idx] = res[idx] + series[i]
            return res / inc
        else:
            for i in range(0, paa_segments * series_len):
                idx = i // series_len
                pos = i // paa_segments
                res[idx] = res[idx] + series[pos]
            return res / series_len

In [11]:
ts = np.array([1, 1, 2, 2, 3, 3])

In [12]:
paa(ts, 6)


Out[12]:
array([1, 1, 2, 2, 3, 3])

In [13]:
paa(ts, 3)


Out[13]:
array([ 1.,  2.,  3.])

In [20]:
paa(paa(ts, 4), 6)


Out[20]:
array([ 1.        ,  1.33333333,  1.66666667,  2.33333333,  2.66666667,  3.        ])

In [25]:
dat = np.array([-0.9796808, -0.8622706, -0.6123005, 0.8496459, 1.739691,
                    1.588194, 1.095829, 0.5277147, 0.4709033, -0.2865819,
                    0.0921607, -0.2865819, -0.9039323, -1.195564, -1.237226])

paa(dat, 10)


Out[25]:
array([-0.94054407, -0.69562387,  1.1463276 ,  1.638693  ,  0.90645757,
        0.48984043, -0.16033437, -0.16033437, -1.00114287, -1.22333867])

In [26]:
dat_paa = np.array([-0.9405441, -0.6956239, 1.146328, 1.638693, 0.9064573,
                        0.4898404, -0.1603344, -0.1603344, -1.001143,
                        -1.223339])
dat_paa - paa(dat, 10)


Out[26]:
array([ -3.33333332e-08,  -3.33333333e-08,   4.00000000e-07,
        -4.44089210e-16,  -2.66666667e-07,  -3.33333331e-08,
        -3.33333333e-08,  -3.33333333e-08,  -1.33333333e-07,
        -3.33333333e-07])

In [7]:
import numpy as np
def cuts_for_asize(a_size):
    """Generate a set of alphabet cuts for its size."""
    options = {
        2: np.array([-np.inf,  0.00]),
        3: np.array([-np.inf, -0.4307273, 0.4307273]),
        4: np.array([-np.inf, -0.6744898, 0, 0.6744898]),
        5: np.array([-np.inf, -0.841621233572914, -0.2533471031358,
                    0.2533471031358, 0.841621233572914]),
        6: np.array([-np.inf, -0.967421566101701, -0.430727299295457, 0,
                    0.430727299295457, 0.967421566101701]),
        7: np.array([-np.inf, -1.06757052387814, -0.565948821932863,
                    -0.180012369792705, 0.180012369792705, 0.565948821932863,
                    1.06757052387814]),
        8: np.array([-np.inf, -1.15034938037601, -0.674489750196082,
                    -0.318639363964375, 0, 0.318639363964375,
                    0.674489750196082, 1.15034938037601]),
        9: np.array([-np.inf, -1.22064034884735, -0.764709673786387,
                    -0.430727299295457, -0.139710298881862, 0.139710298881862,
                    0.430727299295457, 0.764709673786387, 1.22064034884735]),
        10: np.array([-np.inf, -1.2815515655446, -0.841621233572914,
                     -0.524400512708041, -0.2533471031358, 0, 0.2533471031358,
                     0.524400512708041, 0.841621233572914, 1.2815515655446]),
        11: np.array([-np.inf, -1.33517773611894, -0.908457868537385,
                     -0.604585346583237, -0.348755695517045,
                     -0.114185294321428, 0.114185294321428, 0.348755695517045,
                     0.604585346583237, 0.908457868537385, 1.33517773611894]),
        12: np.array([-np.inf, -1.38299412710064, -0.967421566101701,
                     -0.674489750196082, -0.430727299295457,
                     -0.210428394247925, 0, 0.210428394247925,
                     0.430727299295457, 0.674489750196082, 0.967421566101701,
                     1.38299412710064]),
        13: np.array([-np.inf, -1.42607687227285, -1.0200762327862,
                     -0.736315917376129, -0.502402223373355,
                     -0.293381232121193, -0.0965586152896391,
                     0.0965586152896394, 0.293381232121194, 0.502402223373355,
                     0.73631591737613, 1.0200762327862, 1.42607687227285]),
        14: np.array([-np.inf, -1.46523379268552, -1.06757052387814,
                     -0.791638607743375, -0.565948821932863, -0.36610635680057,
                     -0.180012369792705, 0, 0.180012369792705,
                     0.36610635680057, 0.565948821932863, 0.791638607743375,
                     1.06757052387814, 1.46523379268552]),
        15: np.array([-np.inf, -1.50108594604402, -1.11077161663679,
                     -0.841621233572914, -0.622925723210088,
                     -0.430727299295457, -0.2533471031358, -0.0836517339071291,
                     0.0836517339071291, 0.2533471031358, 0.430727299295457,
                     0.622925723210088, 0.841621233572914, 1.11077161663679,
                     1.50108594604402]),
        16: np.array([-np.inf, -1.53412054435255, -1.15034938037601,
                     -0.887146559018876, -0.674489750196082,
                     -0.488776411114669, -0.318639363964375,
                     -0.157310684610171, 0, 0.157310684610171,
                     0.318639363964375, 0.488776411114669, 0.674489750196082,
                     0.887146559018876, 1.15034938037601, 1.53412054435255]),
        17: np.array([-np.inf, -1.5647264713618, -1.18683143275582,
                     -0.928899491647271, -0.721522283982343,
                     -0.541395085129088, -0.377391943828554,
                     -0.223007830940367, -0.0737912738082727,
                     0.0737912738082727, 0.223007830940367, 0.377391943828554,
                     0.541395085129088, 0.721522283982343, 0.928899491647271,
                     1.18683143275582, 1.5647264713618]),
        18: np.array([-np.inf, -1.59321881802305, -1.22064034884735,
                     -0.967421566101701, -0.764709673786387,
                     -0.589455797849779, -0.430727299295457,
                     -0.282216147062508, -0.139710298881862, 0,
                     0.139710298881862, 0.282216147062508, 0.430727299295457,
                     0.589455797849779, 0.764709673786387, 0.967421566101701,
                     1.22064034884735, 1.59321881802305]),
        19: np.array([-np.inf, -1.61985625863827, -1.25211952026522,
                     -1.00314796766253, -0.8045963803603, -0.633640000779701,
                     -0.47950565333095, -0.336038140371823, -0.199201324789267,
                     -0.0660118123758407, 0.0660118123758406,
                     0.199201324789267, 0.336038140371823, 0.47950565333095,
                     0.633640000779701, 0.8045963803603, 1.00314796766253,
                     1.25211952026522, 1.61985625863827]),
        20: np.array([-np.inf, -1.64485362695147, -1.2815515655446,
                     -1.03643338949379, -0.841621233572914, -0.674489750196082,
                     -0.524400512708041, -0.385320466407568, -0.2533471031358,
                     -0.125661346855074, 0, 0.125661346855074, 0.2533471031358,
                     0.385320466407568, 0.524400512708041, 0.674489750196082,
                     0.841621233572914, 1.03643338949379, 1.2815515655446,
                     1.64485362695147]),
    }
    
    return options[a_size]

In [5]:
cuts_for_asize(3)


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-1eb82995a07b> in <module>()
----> 1 cuts_for_asize(3)

<ipython-input-4-396f1a514fdf> in cuts_for_asize(a_size)
     83     }
     84 
---> 85     return options[a_size]()

TypeError: 'numpy.ndarray' object is not callable

In [ ]:


In [ ]:


In [8]:
os.getcwd()


Out[8]:
'/home/psenin/git/saxpy/jupyter'

In [2]:
sys.path


Out[2]:
['',
 '/home/psenin/anaconda3/lib/python36.zip',
 '/home/psenin/anaconda3/lib/python3.6',
 '/home/psenin/anaconda3/lib/python3.6/lib-dynload',
 '/home/psenin/anaconda3/lib/python3.6/site-packages',
 '/home/psenin/anaconda3/lib/python3.6/site-packages/IPython/extensions',
 '/home/psenin/.ipython',
 '..']