Re: Programmatically finding "significant" data points
- From: Peter Otten <__peter__@xxxxxx>
- Date: Tue, 14 Nov 2006 15:21:37 +0100
erikcw wrote:
Hi all,
I have a collection of ordered numerical data in a list. The numbers
when plotted on a line chart make a low-high-low-high-high-low (random)
pattern. I need an algorithm to extract the "significant" high and low
points from this data.
Here is some sample data:
data = [0.10, 0.50, 0.60, 0.40, 0.39, 0.50, 1.00, 0.80, 0.60, 1.20,
1.10, 1.30, 1.40, 1.50, 1.05, 1.20, 0.90, 0.70, 0.80, 0.40, 0.45, 0.35,
0.10]
In this data, some of the significant points include:
data[0]
data[2]
data[4]
data[6]
data[8]
data[9]
data[13]
data[14]
....
How do I sort through this data and pull out these points of
significance?
I think you are looking for "extrema":
def w3(items):
items = iter(items)
view = None, items.next(), items.next()
for item in items:
view = view[1:] + (item,)
yield view
for i, (a, b, c) in enumerate(w3(data)):
if a > b < c:
print i+1, "min", b
elif a < b > c:
print i+1, "max", b
else:
print i+1, "---", b
Peter
.
- Follow-Ups:
- Re: Programmatically finding "significant" data points
- From: Alan J. Salmoni
- Re: Programmatically finding "significant" data points
- References:
- Programmatically finding "significant" data points
- From: erikcw
- Programmatically finding "significant" data points
- Prev by Date: Re: Programmatically finding "significant" data points
- Next by Date: matplotlib and zope
- Previous by thread: Re: Programmatically finding "significant" data points
- Next by thread: Re: Programmatically finding "significant" data points
- Index(es):
Relevant Pages
|