Convertir una matriz bidimensional Numpy 2 a una lista de mapeado de los diccionarios

lokiysh:

Tengo una matriz Numpy 2D, y una lista de cabeceras. Cada fila de la matriz Numpy es un registro para ser asignada a la lista de cabecera. Al final, Quiero convertir cada registro a un diccionario (y así tener una lista de los diccionarios). Por ejemplo:

A = [[1, 2, 3], [4, 5, 6]]
headers = ['a', 'b', 'c']

Salida:

[{'a' : 1, 'b' : 2, 'c' : 3}, {'a' : 4, 'b' : 5, 'c' : 6}]

¿Cuál es la manera más rápida de conseguir esto en Python? Tengo en el orden de 10 ^ 4 filas y 10 cabeceras, y ejecutarlo me lleva aproximadamente 0,3 segundos.

En este momento, tengo el siguiente código:

current_samples = A # The samples described above as input, a Numpy array
locations = []
for i, sample in enumerate(current_samples):
    current_location = dict()
    for index, dimension in enumerate(headers):
        current_location[dimension] = sample[index]
    locations.append(current_location)
Dani Mesejo:

Uso zip + dict :

result = [dict(zip(headers, l)) for l in A]
print(result)

Salida

[{'a': 1, 'b': 2, 'c': 3}, {'a': 4, 'b': 5, 'c': 6}]

Con zipcrea par de elementos de la lista y lo pasa al constructor diccionario.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=395361&siteId=1
Recomendado
Clasificación