Hey,
ich hab mich gefragt, ob man folgendes problem auch elegant lösen könnte:
ich hab eine startzeit und endzeit, eg. 0 min und 10 min.
nun möchte ich zeitintervalle in dieser form erstellen: [0,1] [1,2][2,3]...[9,10]
jemand ne idee wie man das elegant lösen kann?
Zeitintervalle erstellen
-
gh0stsh3ll
- User
- Beiträge: 5
- Registriert: Sonntag 17. November 2019, 17:45
also ich hätt irgendwie sowas gemacht:
aber 1) finde ich, ist das alles andere als elegant, gibt es dazu keine spezielle funktion?
und 2) ist das ergebnis noch sehr bescheiden. sortiert bekomme ich es auch nicht
[array([ 0.33333333, 10.33333333]), array([20.33333333, 30.33333333]), array([40.33333333, 50.33333333]), array([60.33333333, 70.33333333]), array([80.33333333, 90.33333333]), array([100.33333333, 110.33333333]), array([10.33333333, 20.33333333]), array([30.33333333, 40.33333333]), array([50.33333333, 60.33333333]), array([70.33333333, 80.33333333]), array([ 90.33333333, 100.33333333]), array([110.33333333, 10.33333333])]
Code: Alles auswählen
x = np.arange(tref[0], tref[-1], 10)
x = np.split(x, len(x)/2)
x = list(x)
for counter in range(len(x)):
x.append(np.array([x[counter][1], x[counter+1][0]]))
und 2) ist das ergebnis noch sehr bescheiden. sortiert bekomme ich es auch nicht
[array([ 0.33333333, 10.33333333]), array([20.33333333, 30.33333333]), array([40.33333333, 50.33333333]), array([60.33333333, 70.33333333]), array([80.33333333, 90.33333333]), array([100.33333333, 110.33333333]), array([10.33333333, 20.33333333]), array([30.33333333, 40.33333333]), array([50.33333333, 60.33333333]), array([70.33333333, 80.33333333]), array([ 90.33333333, 100.33333333]), array([110.33333333, 10.33333333])]
Also ich hätt irgendwie sowas gemacht:
Code: Alles auswählen
n = 10
list(zip(range(n), range(1, n+1)))-
gh0stsh3ll
- User
- Beiträge: 5
- Registriert: Sonntag 17. November 2019, 17:45
Ok habs selber jetzt nach dem hinweis gefunden:
was mir das ausgibt:
[0.3333333333333333, 10.333333333333334], [10.333333333333334, 20.333333333333336], [20.333333333333332, 30.333333333333332], [30.333333333333332, 40.33333333333333], [40.333333333333336, 50.333333333333336], [50.333333333333336, 60.333333333333336], [60.333333333333336, 70.33333333333334], [70.33333333333333, 80.33333333333333], [80.33333333333333, 90.33333333333333], [90.33333333333333, 100.33333333333333], [100.33333333333333, 110.33333333333333], [110.33333333333333, 120.33333333333333]]
Code: Alles auswählen
step = 10
x_list = [[x, x+step] for x in np.arange(tref[0], tref[-1], step) if x < tref[-1]]
print(x_list)
[0.3333333333333333, 10.333333333333334], [10.333333333333334, 20.333333333333336], [20.333333333333332, 30.333333333333332], [30.333333333333332, 40.33333333333333], [40.333333333333336, 50.333333333333336], [50.333333333333336, 60.333333333333336], [60.333333333333336, 70.33333333333334], [70.33333333333333, 80.33333333333333], [80.33333333333333, 90.33333333333333], [90.33333333333333, 100.33333333333333], [100.33333333333333, 110.33333333333333], [110.33333333333333, 120.33333333333333]]
- __blackjack__
- User
- Beiträge: 14336
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Ich würde für so etwas `more_itertools.windowed()` verwenden:
Code: Alles auswählen
In [20]: list(more_itertools.windowed(range(0, 11), 2))
Out[20]:
[(0, 1),
(1, 2),
(2, 3),
(3, 4),
(4, 5),
(5, 6),
(6, 7),
(7, 8),
(8, 9),
(9, 10)]„Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.“ — Brian W. Kernighan
