2015-09-09 2 views
-6

это индекс:как получить следующий результат

Index= [2, 3, 4, 6] 

это частота индекса, эти два массива связаны позиции, например, первый элемент индекса массива равно 2 и имеет частота 2, так как элемент позиции 2 частота массива составляет 2.

Frequency=[2, 2, 2, 2, 2, 1, 1] 

Мне нужно получить следующие метки массива:

labels=[2, 2, 3, 3, 4, 4, 6] 

Для того, чтобы получить его, я сделал следующий код:

labels=[] 

for index in Index: 
    Counter=Frequency[index] 
    for i in range(Counter): 
     labels.append(index) 

print(labels) 

labels=[2, 2, 3, 3, 4, 4, 6] 

есть какая-либо другая форма, чтобы оптимизировать этот процесс?

+3

Кстати вы представляете вашу проблему, мы не знаем, как поступить либо. –

+2

Возможно, вы не предоставляете полную информацию +, также покажите нам, что вы пробовали до сих пор. –

+1

По вашему вопросу и данным: - Я не могу определить связь между двумя вашими «массивами ввода» ('frequency',' TrainIndex') и вашим выходным массивом. - Пожалуйста, исправьте выделение ('frequency' не отображается как код) Просьба указать код, который вы пробовали до сих пор, и описать связь между входными данными и подробными данными о выходе. – R4PH43L

ответ

1

Предполагая, что список Часто Задаваемые такой же длины, как и список TrainIndex:

frecuency = [2,2,2,1] 
TrainIndex = [9,4,5,8] 
[g for sublist in [[i]*f for (i,f) in zip(TrainIndex,frecuency)] for g in sublist] 

[9, 9, 4, 4, 5, 5, 8] 
+0

спасибо за поддержку Я уже нашел решение это код – John

Смежные вопросы