Уважаемые Stackoverflowers,
Я написал рабочий цикл в цикле, который проходит через ndarrays в списке.Мне было интересно, если есть более элегантное решение "pythonisch".
Если есть решение со списком, не могли бы вы объяснить его шаг за шагом, чтобы я мог следовать и учиться?Я пробовал, но цикл for, зависящий от цикла for, у меня не работал.
- У меня есть список y_labeled , где каждый элемент списка i ndarray j элементов.
- У меня есть dict с различными значениями веса.Ключи значений можно найти в y_labeled . y_labeled также содержит значение маскирования 0 [Здесь я попытался установить get (key, default = 0), но это привело к ошибке, поэтому я использовал if].
СейчасЯ перебираю каждый y_labeled элемент списка-> через каждый элемент массива и сохраняю соответствующий вес в новом списке weight , созданный снова из ndarrays.
Цель состоит в том, чтобысоздайте другой список, такой как y_labeled , содержащий соответствующие значения веса (вы, возможно, догадались -> его sample_weigth).
weigth=list();tmp2=[]
for i in range(len(y_labeled)):
for j in range(len(y_labeled[i])):
for k in (y_labeled[i][j]):
if k !=0:
tmp=weights_dict.get(y_labeled[i].item(np.asscalar(k)))
else:
tmp=0
tmp2.append(tmp)
weigth.append(tmp2); tmp=[];tmp2=[]
Большое спасибо
Редактировать: некоторые примеры данных:
y_labeled=list([1,2,2,4,4,1,1],[2,1,1,4,4,0,0],[2,2,2,2,0,0,0])
weights_dict={1:5, 2:6, 4:19}
Результат:
weight=list([5,6,6,19,19,5,5],[6,5,5,19,19,0,0],[6,6,6,6,0,0,0])