Skip to content

Commit 534488d

Browse files
committed
Fixed #1045 Added raw P_ attr to stimp
1 parent 60283ff commit 534488d

File tree

4 files changed

+105
-2
lines changed

4 files changed

+105
-2
lines changed

stumpy/aamp_stimp.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,26 @@ def M_(self):
348348
"""
349349
return self._M.astype(np.int64)
350350

351+
@property
352+
def P_(self):
353+
"""
354+
Get all of the raw (i.e., non-transformed) matrix profiles matrix profile in
355+
(breadth first searched (level) ordered)
356+
357+
Parameters
358+
----------
359+
None
360+
361+
Returns
362+
-------
363+
None
364+
"""
365+
P = []
366+
for i, idx in enumerate(self._bfs_indices):
367+
P.append(self._PAN[idx][: len(self._T) - self._M[i] + 1])
368+
369+
return P
370+
351371
# @property
352372
# def bfs_indices_(self):
353373
# """

stumpy/stimp.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,26 @@ def M_(self):
360360
"""
361361
return self._M.astype(np.int64)
362362

363+
@property
364+
def P_(self):
365+
"""
366+
Get all of the raw (i.e., non-transformed) matrix profiles matrix profile in
367+
(breadth first searched (level) ordered)
368+
369+
Parameters
370+
----------
371+
None
372+
373+
Returns
374+
-------
375+
None
376+
"""
377+
P = []
378+
for i, idx in enumerate(self._bfs_indices):
379+
P.append(self._PAN[idx][: len(self._T) - self._M[i] + 1])
380+
381+
return P
382+
363383
# @property
364384
# def bfs_indices_(self):
365385
# """

tests/test_aamp_stimp.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ def test_aamp_stimp_100_percent(T):
158158
max_m=None,
159159
step=1,
160160
percentage=percentage,
161-
pre_scraamp=True,
161+
pre_scraamp=False,
162162
)
163163

164164
for i in range(n):
@@ -197,6 +197,37 @@ def test_aamp_stimp_100_percent(T):
197197
npt.assert_almost_equal(ref_pan, cmp_pan)
198198

199199

200+
@pytest.mark.parametrize("T", T)
201+
def test_stimp_raw_mp(T):
202+
"""
203+
Check pan.P_ attribute for raw matrix profile
204+
"""
205+
percentage = 1.0
206+
min_m = 3
207+
n = 5
208+
209+
pan = aamp_stimp(
210+
T,
211+
min_m=min_m,
212+
max_m=None,
213+
step=1,
214+
percentage=percentage,
215+
pre_scraamp=False,
216+
)
217+
218+
for i in range(n):
219+
pan.update()
220+
221+
for idx, m in enumerate(pan.M_[:n]):
222+
zone = int(np.ceil(m / 4))
223+
ref_P_ = naive.aamp(T, m, T_B=None, exclusion_zone=zone)[:, 0]
224+
cmp_P_ = pan.P_[idx]
225+
226+
naive.replace_inf(ref_P_)
227+
naive.replace_inf(cmp_P_)
228+
npt.assert_almost_equal(ref_P_, cmp_P_)
229+
230+
200231
@pytest.mark.filterwarnings("ignore:numpy.dtype size changed")
201232
@pytest.mark.filterwarnings("ignore:numpy.ufunc size changed")
202233
@pytest.mark.filterwarnings("ignore:numpy.ndarray size changed")

tests/test_stimp.py

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ def test_stimp_100_percent(T):
148148
max_m=None,
149149
step=1,
150150
percentage=percentage,
151-
pre_scrump=True,
151+
pre_scrump=False,
152152
# normalize=True,
153153
)
154154

@@ -182,6 +182,38 @@ def test_stimp_100_percent(T):
182182
npt.assert_almost_equal(ref_pan, cmp_pan)
183183

184184

185+
@pytest.mark.parametrize("T", T)
186+
def test_stimp_raw_mp(T):
187+
"""
188+
Check pan.P_ attribute for raw matrix profile
189+
"""
190+
percentage = 1.0
191+
min_m = 3
192+
n = 5
193+
194+
pan = stimp(
195+
T,
196+
min_m=min_m,
197+
max_m=None,
198+
step=1,
199+
percentage=percentage,
200+
pre_scrump=False,
201+
# normalize=True,
202+
)
203+
204+
for i in range(n):
205+
pan.update()
206+
207+
for idx, m in enumerate(pan.M_[:n]):
208+
zone = int(np.ceil(m / 4))
209+
ref_P_ = naive.stump(T, m, T_B=None, exclusion_zone=zone)[:, 0]
210+
cmp_P_ = pan.P_[idx]
211+
212+
naive.replace_inf(ref_P_)
213+
naive.replace_inf(cmp_P_)
214+
npt.assert_almost_equal(ref_P_, cmp_P_)
215+
216+
185217
@pytest.mark.filterwarnings("ignore:numpy.dtype size changed")
186218
@pytest.mark.filterwarnings("ignore:numpy.ufunc size changed")
187219
@pytest.mark.filterwarnings("ignore:numpy.ndarray size changed")

0 commit comments

Comments
 (0)