Articles of rebanada de

Python / numpy problema de corte complicado

Tengo un problema con algunas cosas entumecidas. Necesito una matriz numpy para comportarme de una manera inusual devolviendo una porción como una vista de los datos que he cortado, no una copia. Así que aquí está un ejemplo de lo que quiero hacer: Digamos que tenemos una matriz simple como esta: a = array([1, 0, […]

Preservando las dimensiones de una porción de una matriz 3d Numpy

Tengo una matriz 3d, a , de forma, digamos a.shape = (10, 10, 10) Al cortar, las dimensiones se squeezed automáticamente, es decir a[:,:,5].shape = (10, 10) Me gustaría conservar el número de dimensiones, pero también asegurar que la dimensión que se comprimió es la que muestra 1, es decir, a[:,:,5].shape = (10, 10, 1) […]

Python: ¿una syntax más corta para cortes con huecos?

Supongamos que quiero el primer elemento, el 3 al 200 elementos, y el elemento 201st a través del último elemento en el paso 3, de una lista en Python. Una forma de hacerlo es con una indización y concatenación distintas: new_list = old_list[0:1] + old_list[3:201] + old_list[201::3] ¿Hay alguna manera de hacer esto con un […]

Los índices de segmento deben ser enteros o Ninguno o deben tener el método __index__

Estoy intentando algo con Python. Quiero dividir una lista (meseta) en varias listas (L [i]) pero tengo el siguiente mensaje de error: File “C:\Users\adescamp\Skycraper\skycraper.py”, line 20, in item = plateau[debut:fin] TypeError: slice indices must be integers or None or have an __index__ method La línea en cuestión es la que tiene item = plateau[debut:fin] from […]

numpy: ensamblando múltiples rebanadas en una nueva matriz

Tengo una matriz bidimensional, de la que necesito extraer secciones (cortes) en una nueva matriz: original= numpy.ndarray( shape=(4,4) ) slices= numpy.ndarray( shape=(0,2) ) for x in range(3): slice= original[x:x+2,x:x+2] slices=numpy.append(slices, slice,axis=0) ¿Hay una forma más eficiente de hacerlo (deshacerse de python por ciclo)? —-EDITAR—- Para aclarar, estoy preguntando cómo copiar segmentos 2D con forma arbitraria […]

Cortando la matriz usando otra matriz como los índices de la rebanada a lo largo del eje

Digamos que tengo una matriz que se parece a la siguiente: arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] Y tengo otra matriz slicer = [1,3,2] . Quiero aplicar estos valores ya que el índice de división sobre el eje 0 se mide a lo largo del eje 1. Esto no funciona […]

¿Cómo dividir (en Python) los elementos “todos menos los últimos n” cuando n puede ser cero?

Tengo una lista de elementos en Python y necesito obtener “todos menos los últimos N”. Debe funcionar cuando N es cero (en cuyo caso quiero la lista completa) y cuando N es mayor o igual que la longitud de la lista (en cuyo caso quiero una lista vacía). Esto funciona en la mayoría de los […]

¿Cómo manejar bien rebanar?

Al implementar una función de autocorrelación tengo un término como for k in range(start,N): c[k] = np.sum(f[:-k] * f[k:])/(Nk) Ahora todo funciona bien si start = 1 pero me gustaría manejar bien el inicio en 0 casos sin condicional. Obviamente, no funciona como está porque f[:-0] == f[:0] y devuelve una matriz vacía, mientras que […]

Cortar un número binario en grupos de cinco dígitos

¿Hay algún truco para dividir un número binario en grupos de cinco dígitos en python? ‘00010100011011101101110100010111’ => [‘00010’, ‘00110’, ‘10111’, …] Edición: quiero escribir un cifrado / codificador para generar tokens de “fácil de leer por teléfono”. La encoding estándar de base32 tiene las siguientes desventajas: Potencial para generar f * palabras accidentales Usa caracteres […]

¿Cómo implementar __delitem__ para manejar todos los escenarios posibles de división?

Trabajo en una clase con una lista incrustada. class a: def __init__(self, n): self.l = [1] * n def __getitem__(self, i): return self.l[i] def __delitem__(self, i): print type(i) print i Quiero usar el operador del con la syntax completa de los segmentos: p = a(10) del p[1:5:2] El __delitem__ recibe un objeto de slice si […]