2017-02-20 15 views
0

У меня есть большой массив с именем массивов, которые следует следующую структуру:Python - Добавление ключа (строка) в Numpy массив, заполненный с поплавком

[ [0.453,0.5452,0.252], [0.411,0.352,0.119], [...], ... , [...] ] 

У меня есть другой массив с именем B с той же длиной, но заполненной строкой. Например:

['toto1','toto2',...,'totoN'] 

Теперь я хотел бы связать каждый массив A со строкой B. Так как, как это:

[ ['toto1',0.453,0.5452,0.252], ['toto2',0.411,0.352,0.119], [...], ... , [...] ] 

Или:

{'toto1':[0.453,0.5452,0.252],'toto2':[0.411,0.352,0.119],...} 

в зависимости от того, что можно сделать, и самый простой способ сделать это.

Во-первых, можно ли это делать? Если да, не могли бы вы помочь мне разобраться, как я могу это достичь?

Большое спасибо заранее

+0

Это явно не дубликат связанного вопроса, так как ОП просит объединить строки и цифры в массиве numpy. Глядя на заголовок вопросов, должно быть очевидно, что словарь здесь служит лишь отступлением. –

+0

Вы говорите о массивах numpy или списках Python (списков)? Различие важно - если вы не довольны построением словарного запаса. – hpaulj

+0

@hpaulj говорит, что «numpy array» в заголовке –

ответ

2

Если вы ищете словарь, вы можете использовать zip:

dict(zip(B, A)) 
# {'toto1': [0.453, 0.5452, 0.252], 'toto2': [0.411, 0.352, 0.119]} 
+0

Благодарим вас за ответ. А если B - список? Будет ли то же самое? – lilouch

+1

Это должно работать как для списков, так и для массивов numpy. Но вы будете иметь разные типы данных для значений словаря в зависимости от того, являются ли они списками или массивами numpy. – Psidom

1
associated_dict = {k:v for k,v in [(B[i], A[i]) for i in range(len(A))]} 

Обратите внимание, что эти два списка должны иметь одинаковое число элементов.

1

Вы можете пробежать с петлей или просто использовать почтовый индекс:

a = [ [0.453,0.5452,0.252], [0.411,0.352,0.119]] 

b = ['toto1','toto2'] 

res = {} 
for i in range(len(a)): 
    res[b[i]] = a[i] 

print (res) 

Или в более коротком пути:

dict(zip(b,a)) 

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

  • Нет связанных вопросов^_^