2013-11-15 20 views
7

Mam tablicę numpy i chcę utworzyć słownik z tablicy.Tworzenie słownika z tablicy numpy

Dokładniej chcę słownika, który ma klucze, które odpowiadają rzędu, więc klucz 1 powinna być suma rzędu 1.

s1 jest moja macierz i wiem jak uzyskać sumę rzędu ale robi numpy.sum(s1[i]), gdzie i jest wiersz.

Myślałem o stworzeniu pętli, w której mogę obliczyć sumę wierszy, a następnie dodać ją do słownika, ale jestem nowy w programowaniu, więc nie jestem pewien, jak to zrobić lub jeśli jest to możliwe.

Czy ktoś ma jakieś sugestie?

EDIT

stworzyłem kluczowe wartości z zakresu funkcji. Następnie zapinałeś klucze i tablicę.

mydict = dict(zip(keys, s1)) 

Odpowiedz

8

zrobiłbym coś w duchu podobnym do Twojego dict(zip(keys, s1)), z dwoma niewielkimi zmianami.

Po pierwsze, możemy użyć enumerate, a po drugie, możemy nazwać metodę sum z ndarray s. Przykład:

>>> arr = np.arange(9).reshape(3,3) 
>>> arr 
array([[0, 1, 2], 
     [3, 4, 5], 
     [6, 7, 8]]) 
>>> arr.sum(axis=1) 
array([ 3, 12, 21]) 
>>> dict(enumerate(arr.sum(axis=1))) 
{0: 3, 1: 12, 2: 21}