Articles of vectorización

clasificación de radios vectorizadas con numpy – ¿puede superar np.sort?

Numpy aún no tiene una clasificación de radix, así que me pregunté si era posible escribir uno usando funciones numpy pre-existentes. Hasta ahora tengo lo siguiente, que sí funciona, pero es aproximadamente 10 veces más lento que el pedido rápido de numpy. Prueba y punto de referencia: a = np.random.randint(0, 1e8, 1e6) assert(np.all(radix_sort(a) == np.sort(a))) […]

¿Cómo vectorizar una función que contiene una sentencia if?

Digamos que tenemos la siguiente función: def f(x, y): if y == 0: return 0 return x/y Esto funciona bien con valores escalares. Desafortunadamente, cuando trato de usar matrices numpy para y la comparación y == 0 se trata como una operación de matriz que produce un error: ————————————————————————— ValueError Traceback (most recent call last) […]

Problema de eficiencia de personalización de la operación vectorizada de numpy.

Tengo una función de python dada a continuación: def myfun(x): if x > 0: return 0 else: return np.exp(x) donde np es la biblioteca numpy . Quiero hacer la función vectorizada en numpy, entonces uso: vec_myfun = np.vectorize(myfun) Hice una prueba para evaluar la eficiencia. Primero genero un vector de 100 números aleatorios: x = […]

Normalizando una matriz numpy

Dada una matriz, quiero normalizarla de tal manera que cada fila sume 1. Actualmente tengo el siguiente código: import numpy w = numpy.array([[0, 1, 0, 1, 0, 0], [1, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 1, 0], [0, 0, 0, 1, 0, 1], [0, 1, 1, […]

Truncando números decimales decimales matriz de flotadores

Quiero truncar los valores flotantes dentro de la matriz numpy, para .eg 2.34341232 –> 2.34 Leí el punto flotante post truncado pero es para un flotador. No quiero ejecutar un bucle en la matriz numpy, será bastante caro. ¿Hay algún método incorporado dentro de numpy que pueda hacer esto fácilmente? Necesito salida como un float […]

¿Cómo puedo acelerar el código NumPy perfilado – vectorización, Numba?

Estoy ejecutando un gran progtwig Python para optimizar las ponderaciones de la cartera para la optimización de la cartera (Markowitz) en finanzas. Cuando hago un perfil del código, el 90% del tiempo de ejecución se invierte en calcular la rentabilidad de la cartera, que se realiza millones de veces. ¿Qué puedo hacer para acelerar mi […]

Describiendo huecos en una serie temporal de pandas.

Estoy intentando escribir una función que toma una serie de tiempo continua y devuelve una estructura de datos que describe los huecos faltantes en los datos (por ejemplo, un DF con las columnas ‘inicio’ y ‘final’). Parece un problema bastante común para las series de tiempo, pero a pesar de jugar con groupby, diff y […]

Ponga las diferencias por pares de las filas de la matriz en una matriz tridimensional

Tengo una matriz Y de forma (n, d). Ya calculé las diferencias entre filas por pares de la siguiente manera: I, J = np.triu_indices(Y.shape[0], 0) rowDiffs = (Y[I, :] – Y[J, :]) No, quiero crear una matriz 3D que contenga las diferencias de las filas i y j de Y en la posición (i, j, […]

Vectorize código numpy con operación dependiendo del valor anterior

El siguiente código modela un sistema que puede muestrear 3 estados diferentes en cualquier momento, y la probabilidad de transición constante entre esos estados viene dada por la matriz prob_nor . Por lo tanto, cada punto en la trace depende del estado anterior. n_states, n_frames = 3, 1000 state_val = np.linspace(0, 1, n_states) prob = […]

Numpy elemento-sabio en la operación

Supongamos que tengo un vector de columna y con longitud n, y tengo una matriz X de tamaño n * m. Quiero verificar cada elemento i en y, si el elemento está en la fila correspondiente en X. ¿Cuál es la forma más eficiente de hacer esto? Por ejemplo: y = [1,2,3,4].T y X =[[1, […]