Broadcasting, con precisión en Python
Las formas se alinean desde la derecha; una dimensión de uno se estira.
import numpy as np
filas = np.arange(3).reshape(3, 1)
columnas = np.arange(4).reshape(1, 4)
print((filas + columnas).shape)
print(filas + columnas)
valores = np.arange(3)
print((valores[:, np.newaxis] * valores).shape)
print(np.broadcast_shapes((3, 1), (1, 4), (3, 4)))
Cómo funciona
- Las dimensiones finales deben coincidir o ser 1.
newaxisinserta el 1 que necesitas para que eso se cumpla.broadcast_shapesresponde la pregunta sin reservar memoria.
Palabras clave y builtins usados aquí
asprint
El intento, en números
- Líneas
- 11
- Caracteres a escribir
- 272
- Tokens
- 100
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 57 segundos.
Paso 4 de 4 en Tipos y formas; paso 12 de 22 en NumPy.