Articles of segmento de

Iteración eficiente sobre la rebanada en Python

¿Qué tan eficientes son las iteraciones sobre las operaciones de división en Python? Y si una copia es inevitable con rebanadas, ¿hay alguna alternativa? Sé que una operación de división sobre una lista es O (k), donde k es el tamaño de la división. x[5 : 5+k] # O(k) copy operation Sin embargo, al recorrer […]

Rápida indexación de lujo numpy

Mi código para cortar una matriz numpy (a través de una indexación elegante) es muy lento. Actualmente es un cuello de botella en el progtwig. a.shape (3218, 6) ts = time.time(); a[rows][:, cols]; te = time.time(); print(‘%.8f’ % (te-ts)); 0.00200009 ¿Cuál es la llamada numpy correcta para obtener una matriz que consiste en el subconjunto […]

Insertar elemento en la lista de Python después de cada elemento nth

Digamos que tengo una lista de Python como esta: letters = [‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’] Quiero insertar una ‘x’ después de cada elemento nth, digamos tres caracteres en esa lista. El resultado debe ser: letters = [‘a’,’b’,’c’,’x’,’d’,’e’,’f’,’x’,’g’,’h’,’i’,’x’,’j’] Entiendo que puedo hacer eso con bucles e inserciones. Lo que realmente estoy buscando es una forma de Pythonish, ¿quizás una […]

Pasando la syntax de la porción de Python a las funciones

En Python, ¿es posible encapsular exactamente la syntax de división común y pasarla? Sé que puedo usar slice o __slice__ para emular a slicing. Pero quiero pasar exactamente la misma syntax que pondría entre los corchetes que se utilizarían con __getitem__ . Por ejemplo, supongamos que escribí una función para devolver parte de una lista. […]

¿Por qué la asignación después del final de una lista a través de un sector no genera un IndexError?

Estoy trabajando en una implementación de lista dispersa y recientemente implementé una asignación a través de un sector. Esto me llevó a descubrir algún comportamiento en la implementación de la list incorporada de Python que me parece sorprendente . Dada una list vacía y una asignación a través de una porción: >>> l = [] […]

Cortar múltiples rangos de columnas con Pandas

Supongamos que tengo 20 columnas en un conjunto de datos y quiero usar 19 como entrada. y las columnas de entrada son columnas de 1:10 y 12: 20 y quiero usar la columna 11 como salida. Entonces, ¿cómo dar este tipo de rango utilizando pandas? por ejemplo: Ejemplo de conjunto de datos considera que los […]

Combinación de segmentación y indexación difundida para matrices numpy multidimensionales

Tengo una matriz de números ND (digamos, por ejemplo, 3x3x3) de la que me gustaría extraer una matriz secundaria, combinando segmentos y matrices de índices. Por ejemplo: import numpy as np A = np.arange(3*3*3).reshape((3,3,3)) i0, i1, i2 = ([0,1], [0,1,2], [0,2]) ind1 = j0, j1, j2 = np.ix_(i0, i1, i2) ind2 = (j0, slice(None), j2) […]

Corte Python primer y último elemento en la lista

¿Hay alguna forma de dividir solo el primer y el último elemento en una lista? Por ejemplo; Si esta es mi lista: >>> some_list [‘1’, ‘B’, ‘3’, ‘D’, ‘5’, ‘F’] Quiero hacer esto (obviamente [0,-1] no es una syntax válida): >>> first_item, last_item = some_list[0,-1] >>> print first_item ‘1’ >>> print last_item ‘F’ Algunas cosas […]

Implementación y diferencia de rendimiento entre el método insert () de Python y la inserción por corte

¿Cuál es la diferencia entre insertar un elemento en una lista de python de las siguientes maneras? myList.insert(at, myValue) myList[at:at] = [myValue] He realizado algunas pruebas y el rendimiento de las dos es muy similar, pero el inserto de rebanado siempre produce resultados ligeramente mejores. Mi pregunta es sobre la diferencia en la implementación y […]

Selección de ventanas aleatorias de filas de matrices numpy multidimensionales

Tengo una gran variedad donde cada fila es una serie de tiempo y, por lo tanto, necesita mantenerse en orden. Quiero seleccionar una ventana aleatoria de un tamaño dado para cada fila. Ejemplo: >>>import numpy as np >>>arr = np.array(range(42)).reshape(6,7) >>>arr array([[ 0, 1, 2, 3, 4, 5, 6], [ 7, 8, 9, 10, 11, […]