I have a matrix in the form of a numpy array like this :
myarray = np.array[[0,400,405,411,415,417,418,0]
                   [0,404,412,419,423,422,422,0]
                   [0,409,416,421,424,425,425,0]
                   [0,411,414,417,420,423,426,0]
                   [0,409,410,410,413,419,424,0]
                   [0,405,404,404,409,414,419,0]]
and also empty dictionary :
dict = { }
In my case, i want to convert that array to python dictionary where the keys of dictionary are sequential number calculated from up-left value (myarray[0][0]) until bottom-right value (myarray[5][7]) interleaved by row.
So the result will be like this :
dict = { 1 : 0, 2 : 400, 3: 405, ........, 47 : 419 ,48 : 0 } 
is there any solution for this condition? wish for your help.. Any help would be very appreciated..
Use flatten and then create the dictionary with the help of enumerate starting from 1:
myarray = np.array([[0,400,405,411,415,417,418,0],
                   [0,404,412,419,423,422,422,0],
                   [0,409,416,421,424,425,425,0],
                   [0,411,414,417,420,423,426,0],
                   [0,409,410,410,413,419,424,0],
                   [0,405,404,404,409,414,419,0]])
d = dict(enumerate(myarray.flatten(), 1))
Output of d:
{1: 0,
 2: 400,
 3: 405,
 4: 411,
 5: 415,
 6: 417,
 7: 418,
 8: 0,
 9: 0,
 10: 404,
 ...
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With