Есть:Как создать Dict из массива в Python
keys = ['a', 'b','c','d']
NumPy массив ....
array = numpy.array([[1, 2, 3, 5], [6, 7, 8, 10], [11, 12, 13, 15]])
хотят
my_dict = {'a': [1,6,11], 'b': [2,7,12], 'c': [3,7,13], 'd': [5,10,15]}
Есть:Как создать Dict из массива в Python
keys = ['a', 'b','c','d']
NumPy массив ....
array = numpy.array([[1, 2, 3, 5], [6, 7, 8, 10], [11, 12, 13, 15]])
хотят
my_dict = {'a': [1,6,11], 'b': [2,7,12], 'c': [3,7,13], 'd': [5,10,15]}
транспонировать массив, zip()
ключи с и преобразовать в dict
:
dict(zip(keys, zip(*array)))
Поскольку array
является массив NumPy, вы можете также использовать
dict(zip(keys, array.T)))
keys = ['a', 'b','c','d']
vals = [[1, 2, 3, 5], [6, 7, 8, 10], [11, 12, 13, 15]]
dict(zip(keys, zip(*vals)))
{'a': (1, 6, 11), 'c': (3, 8, 13), 'b': (2, 7, 12), 'd': (5, 10, 15)}
Это полезно, чтобы увидеть, что происходит, когда вы zip(*)
объект, это довольно полезный трюк:
zip(*vals)
[(1, 6, 11), (2, 7, 12), (3, 8, 13), (5, 10, 15)]
Он выглядит (и вы увидите его еще один ответ), как транспонирование! Здесь есть «гоча». Если один из списков короче других, zip(*)
остановится преждевременно:
vals = [[1, 2, 3, 5], [6, 7, 8, 10], [11, 12, 13]]
zip(*vals)
[(1, 6, 11), (2, 7, 12), (3, 8, 13)]
Красивая. Возможно, также будет понимание диктофона на Python 2.7+ –