Ya hay una lista completa de consejos para pitón aquí , así que lo que estoy pidiendo son consejos que se aplican específicamente a la utilización de los numpy, scipyo pylabbibliotecas.
Estas pueden ser formas de acortar el código que ya está usando numpy, o formas de acortar las operaciones comunes de Python usando estas bibliotecas.
Un consejo por respuesta, por favor.

pylabes solomatplotlib.pyplot+numpyen un espacio de nombres común en desuso. Lanumpyparte depylabes trivial en el sentido de que sus importaciones tienen el mismo número de bytes, por lo que solo podría trazar cosas adicionalespylab, pero sospecho que eso no es lo que tenía en mente con su pregunta.numpypaquetes. Por ejemplo,pylab.randintes válido donde lo requiera numpynumpy.random.randint. Entonces, para el golfpylabdebe proporcionar un código más corto.Respuestas:
Haz uso de la transmisión de Numpy
Transmitir significa replicar una matriz multidimensional a lo largo de algunas de sus dimensiones singleton para que coincida con el tamaño de otra matriz. Esto sucede automáticamente para las matrices Numpy cuando se les aplican operadores aritméticos.
Por ejemplo, para generar una tabla de multiplicación de 10 × 10 puede usar
Pruébalo en línea!
Aquí
tse crea como la matriz de Numpy[1, 2, ..., 10]. Esto tiene forma (10,), que es equivalente a (1,10). La otra matriz de operandost[:,None], tiene tamaño (10,1). Multiplicar las dos matrices las replica implícitamente, por lo que se comportan como si ambas tuvieran forma (10,10). El resultado, que también tiene forma (10,10), contiene los productos para todos los pares de entradas en las matrices originales.fuente
zipla transmisión, ¿va a surgir en su propia respuesta?[*zip(t)]tiene el mismo número de bytes que el más legiblet[:,None]. Pero tienes razón, vale la pena señalar, así que lo agregué aquí[*zip(t)]sería dos bytes más corto si hubiera más dimensiones.[*zip(t)]solo funcionará en Python 3.my \t = 1..10; .fmt('%3d').put for t «*» t[*,Empty]o podría usarzip(t)Utilice r _ [...] en lugar de rango (...)
Numpy proporciona una sintaxis similar a matlab para la creación de matrices usando
r_[...]. Cualquier notación de corte entre paréntesis se interpreta como una matriz con el rango indicado. Entonces, por ejemploes equivalente a
y para la mayoría de los usos puede reemplazar
También puede manejar expresiones más complejas. Por ejemplo, para obtener índices de 0 a 10 y volver a bajar,
fuente