Articles of rendimiento de

matriz numpy a matriz de permutación

np.array([1,2,3]) Tengo una matriz de números. Me gustaría convertirlo en una matriz numpy con tuplas de cada permutación 1: 1. Me gusta esto: np.array([ [(1,1),(1,2),(1,3)], [(2,1),(2,2),(2,3)], [(3,1),(3,2),(3,3)], ]) ¿Alguna idea sobre cómo hacer esto de manera eficiente? Necesito hacer esta operación unos cuantos millones de veces.

Buscando una forma rápida de encontrar el polígono al que pertenece un punto usando Shapely

Tengo un conjunto de ~ 36,000 polígonos que representan una partición (~ condados) del país. Mi script en python recibe muchos puntos: pointId, longitud, latitud. Para cada punto, quiero enviar de vuelta pointId, polygonId. Para cada punto, hacer un bucle en todos los polígonos y usar myPoint.inin (myPolygon) es bastante ineficiente. Supongo que la biblioteca […]

Método rápido en Python para dividir un archivo de texto grande usando el número de líneas como variable de entrada

Estoy dividiendo un archivo de texto usando el número de líneas como variable. Escribí esta función para guardar en un directorio temporal los archivos escupidos. Cada archivo tiene 4 millones de líneas esperando el último archivo. import tempfile from itertools import groupby, count temp_dir = tempfile.mkdtemp() def tempfile_split(filename, temp_dir, chunk=4000000): with open(filename, ‘r’) as datafile: […]

Gran diferencia de velocidad en números entre código similar

¿Por qué hay una gran diferencia de velocidad entre los siguientes cálculos de la norma L2: a = np.arange(1200.0).reshape((-1,3)) %timeit [np.sqrt((a*a).sum(axis=1))] 100000 loops, best of 3: 12 µs per loop %timeit [np.sqrt(np.dot(x,x)) for x in a] 1000 loops, best of 3: 814 µs per loop %timeit [np.linalg.norm(x) for x in a] 100 loops, best of […]

Python es ‘clave en dict’ diferente / más rápido que ‘clave en dict.keys ()’

Intuitivamente creo que la key in dict es más rápida que la key in dict.keys() ya que .keys() crea una lista de claves. Esta pregunta es para confirmar si esto es cierto. ¿Solo se pregunta si la key in dict crea / usa internamente una lista para encontrar si la clave está presente? Además, ¿es […]

¿Por qué es más lento numpy que python? Cómo hacer que el código funcione mejor

Vuelvo a escribir mi neural network de python puro para adormecer, pero ahora funciona incluso más lento. Así que probé estas dos funciones: def d(): a = [1,2,3,4,5] b = [10,20,30,40,50] c = [i*j for i,j in zip(a,b)] return c def e(): a = np.array([1,2,3,4,5]) b = np.array([10,20,30,40,50]) c = a*b return c timeit d […]

¿Cómo puedo vectorizar este orden de conteo de python para que sea absolutamente tan rápido como puede ser?

Estoy tratando de escribir un orden de conteo en python para vencer al timsort incorporado en ciertas situaciones. En este momento supera la función ordenada incorporada, pero solo para arreglos muy grandes (1 millón de enteros de longitud y más, no he probado más de 10 millones) y solo para un rango no mayor a […]

¿Cargar un archivo grande (25k entradas) en dict es lento en Python?

Tengo un archivo que tiene aproximadamente 25000 líneas, y es un archivo de formato s19. Cada línea es como: S214 780010 00802000000010000000000A508CC78C 7A No hay espacios en el archivo real, la primera parte 780010 es la dirección de esta línea, y quiero que sea el valor clave de un dict, y quiero que la parte […]

Tipos de datos de Python Numpy rendimiento

Así que hice algunas pruebas y obtuve resultados extraños. Código: import numpy as np import timeit setup = “”” import numpy as np A = np.ones((1000,1000,3), dtype=datatype) “”” datatypes = “np.uint8”, “np.uint16”, “np.uint32”, “np.uint64”, “np.float16”, “np.float32”, “np.float64” stmt1 = “”” A = A * 255 A = A / 255 A = A – 1 […]

¿Guardar memoria para lista en Python?

Al progtwigr en Python, ¿es posible reservar memoria para una lista que se llenará con un número conocido de elementos, para que la lista no se reasigne varias veces mientras se construye? He buscado en los documentos un tipo de lista de Python y no he encontrado nada que parezca hacer esto. Sin embargo, este […]