Es scheint, dass es nichts gab, das mit Numpys Shuffle zurückgesetzt werden konnte, also habe ich es geschafft. Bitte lassen Sie mich wissen, ob es überhaupt einen besseren Weg gibt, es zu schreiben.
Mische mit resettable_shuffle und stelle mit reset_shuffle wieder her.
test.py
import numpy as np
#Array ist eine gewöhnliche eindimensionale Liste
#Zerstörerische Methode
def resettable_shuffle(array, seed):
np.random.seed(seed)
np.random.shuffle(array)
#Array ist eine gewöhnliche eindimensionale Liste
#Zerstörungsfreie Methode
def reset_shuffle(array, seed):
seq = np.arange(len(array))
np.random.seed(seed)
np.random.shuffle(seq)
tmp = np.c_[seq.T, np.array(array).T]
tmp = np.ndarray.tolist(tmp)
tmp = sorted(tmp)
tmp = np.array(tmp)
return np.ndarray.tolist(tmp[:,1])
seed = 321654
a = ["a","b","c","d","e","f"]
resettable_shuffle(a, seed)
print(a)
a = reset_shuffle(a, seed)
print(a)
Ausgabeergebnis
['a', 'b', 'c', 'd', 'e', 'f']
['c', 'f', 'd', 'e', 'a', 'b']
['a', 'b', 'c', 'd', 'e', 'f']
Bitte folgen Sie: Golf: @redshoga
Recommended Posts