J'ai deux listes. Un avec des données d'échantillonnage et une avec des étiquettes correspondantes. J'ai besoin de choisir des données de manière aléatoire à partir des données d'échantillon, mais j'ai également besoin de leurs étiquettes correspondantes.
C'est ce que je fais actuellement: P>
['C','A'] ['3','1'] ['B','D'] ['2','4']
6 Réponses :
zip Les deux listent ensemble, choisissez un élément à partir de la liste zippée:
>>> list1 ['B', 'A'] >>> list2 ['2', '1'] >>>
Merci, j'ai fini par faire cela pour décompresser: Unzipped = zip (* zippé) RAWTRAINAININGDATA = Décompressé [0] TrainingLabels = décompressé [1]
Code:
['1', '3']
Cela pourrait ne pas donner les résultats souhaités si les listes contiennent des doublons, et il aurait besoin de modification si la deuxième liste n'était que de nombreuses nombreuses numéros et que la recherche de l'index de cette manière n'est pas efficace, ce qui pourrait avoir une bonne affaire. Si les listes réelles sont aussi importantes que le contexte d'apprentissage de la machine suggérerait.
Je pense que ce que les commentateurs suggèrent est
j = list(zip(rawTrainingData, trainingLabels) selected = random.sample(j, amount) selected_training_data = [td for (td, l) in selected] selected_labels = [l for (td, l in selected]
Si vous souhaitez obtenir deux listes de deux listes de deux listes différentes, par exemple A, B
('C', 'A') ('3', '1')
import random import numpy as np def _random_sample(X, y, sample_size): data =[(i,j) for i,j in zip(X, y)] data_2= random.sample(data, sample_size) del data X1 = [] y1 = [] for t in data_2: X1.append(t[0]) y1.append(t[1]) del data_2 X1 = np.array(X1) y1 = np.array(y1) return X1, y1 X_train=[ [1,1,1], [2,2,2], [3,3,3], [4,4,4] ] y_train =['a', 'b', 'c', 'd'] X1, y1 = _random_sample(X_train, y_train, 3)
import random a = [i for i in range(1,10)] b = [i*10 for i in range(1,10)] random.seed(110) print(random.sample(a,4) random.seed(110) print(random.sample(b,4)) If you set your seed to a fixed value, then the numbers that are generated will be always in the same order.
Créez une liste zippée dans les deux listes et choisissez un élément de cette liste i>
pour
A code> et
b code> lists, la liste
(zip (a, b)) code> est une liste zippée