30.000 Datenpunkte, größte Veränderung in 2 Wochen

Ich habe:

- 30,000 data points
- each data point is a measurement of type float
- each measurement is associated with a date
- each date has only one measurement
- no dates are without measurements
- the data comes in the form of a text file: 30,000 lines in this form:
    - YYYY-MM-DD I,F (e.g. 1977-02-08 20.74)
- measurement appearing in the source file are already sorted by date

Ich brauche:

- a time-interval T with boundaries (s,e) /* start, end */
- (s - e = 14 days) the time-interval *must* be 2 weeks
- define min as the lowest value in the interval T
- define max as the greatest value in the interval T
- the chosen T needs to have the greatest distance btwn max and min of all possible Ts
- break ties among intervals T by choosing the most recent (with the greatest s value)
- the chosen T must consider all jumps in the 14 days, not just the values @ s and e
- if the overall "variance" in the interval is great but the jump 
  |max-min| is not the greatest in absolute value, T is not the right choice,
  even if it's an "exciting" interval

Ich frage:

- which algorithm to employ, considering algorithms are not my specialty
- which data structure to use to keep track of the subtotals

Hinweis:

- an answer in pseudo code would be preferred, "prose" is fine if pressured for time
- an answer in Python would be... splendid :)

Wenn Sie möchten, können Sie "Dummy" -Daten generieren und Ihren vorgeschlagenen Algorithmus als Test ausführen, oder ich kann die tatsächlichen Daten gemeinsam nutzen.

Es geht mir hier nicht so sehr um die Leistung, sondern darum, den schnellsten Weg zu finden, um zu lernen, wie man die richtige Lösung und den richtigen Algorithmus anwendet.

Ich glaube, ich kann die Korrektheit auch mit dem einfachsten iterativen Algorithmus "beweisen", da der Datensatz bei heutigen Computern klein ist.

Bisher "durchquere und trage ich 14 Vektoren mit 14 Messungen". Wenn Sie mir beibringen könnten, wie man dies schrittweise mit Teilsummen macht, wäre das sehr zu begrüßen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage