He enorme objetos json que contiene 2D listas de coordenadas que tengo que transformar en arrays de numpy para su procesamiento.
Sin embargo el uso de json.loads
seguido con np.array()
es demasiado lento.
Hay una manera de aumentar la velocidad de creación de arrays de numpy de json?
import json
import numpy as np
json_input = '{"rings" : [[[-8081441.0, 5685214.0], [-8081446.0, 5685216.0], [-8081442.0, 5685219.0], [-8081440.0, 5685211.0], [-8081441.0, 5685214.0]]]}'
dict = json.loads(json_input)
numpy_2d_arrays = [np.array(ring) for ring in dict["rings"]]
Me gustaría tener solución alguna!
- Me estoy poniendo un
json
decodificador de error: «el Archivo «/usr/lib/python3.5,… json.decodificador.JSONDecodeError: se Esperaba valor: línea 1 columna 14 (char 13)` - tienes razón, es fija
- Fue el
()
que no eran estándar JSON. - Otros analizadores
eval
yast.literal_eval
(más seguro). En esta pequeña muestrajson.loads
es notablemente más rápido. Elnp.array
parte toma menos tiempo.
La respuesta más sencilla sería:
Ya que esto evita explícitamente en bucle encima de su matriz en python probablemente verá una modesta aceleración. Si usted tiene el control sobre la creación de
json_input
sería mejor escribir como una serie matriz. Una versión es aquí.Desde JSON sintaxis es muy cerca a la sintaxis de Python, le sugiero que utilice
ast.literal_eval
. Puede ser más rápido…Darle una oportunidad. Y nos dicen.
Por esta específica los datos, usted podría tratar este