HOWTO · NumPy
Multiplicar Array con escalar en Python
Para multiplicar cada elemento de un array de NumPy por un escalar en Python, puedes usar el operador `*` o la función `numpy.multiply()`. Ambas opciones realizan una multiplicación elemento a elemento.
En esta página
Para multiplicar cada elemento de un array de NumPy por un escalar en Python, usa el operador * o numpy.multiply(). Ambos realizan una multiplicación elemento a elemento y devuelven un array con los productos correspondientes. Los ejemplos siguientes muestran cada forma y su salida observada.
Multiplicar un array de NumPy por un escalar con *
Usa * cuando quieras que la expresión se lea como una operación aritmética habitual. NumPy aplica el escalar a cada elemento del array, así que la operación no requiere un bucle en tu código de Python. La variable result recibe el array calculado, mientras que values queda disponible para cálculos posteriores.
Ejecuta este ejemplo autónomo en un entorno donde esté instalado NumPy:
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
import numpy as np
values = np.array([2, 4, 6])
scale = 3
result = values * scale
print(result)
Salida observada:
[ 6 12 18]
Para un array [2, 4, 6] y el escalar 3, los productos observados elemento a elemento son 6, 12 y 18. NumPy muestra este array de enteros con espacios que alinean sus valores de una sola cifra. La misma expresión funciona con valores enteros o de punto flotante; el tipo de dato del resultado sigue las reglas aritméticas y de promoción de tipos de NumPy.
Multiplicar un array de NumPy por un escalar con numpy.multiply()
Llama a numpy.multiply(array, scalar) cuando nombrar explícitamente la operación facilite leer o combinar el código. Recibe el array y el escalar como sus dos operandos y, para este uso, realiza la misma multiplicación elemento a elemento que *. Ejecuta este segundo ejemplo autónomo en un entorno donde esté instalado NumPy:
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
import numpy as np
values = np.array([1.5, 2.0, 4.5])
scale = 2
result = np.multiply(values, scale)
print(result)
Salida observada:
[3. 4. 9.]
Aquí cada valor se multiplica por 2 y la salida observada es [3. 4. 9.]. NumPy muestra estos valores de punto flotante sin un cero final. Ambos ejemplos asignan el resultado a una variable nueva, en lugar de modificar el array original en el sitio. Si necesitas conservar los valores originales, sigue usando values; si necesitas otro flujo de trabajo, asigna deliberadamente el resultado de nuevo.
Elegir entre * y numpy.multiply()
Para multiplicar un array por un escalar, elige la forma que haga más claro el código que la rodea. El operador * es compacto y familiar en una expresión aritmética. numpy.multiply() deja explícita la operación mediante una llamada a función. En este caso, ninguna forma ofrece una ventaja especial para el broadcasting: ambas siguen las reglas de multiplicación elemento a elemento de NumPy.
Un escalar puede difundirse por el array porque se aplica a todos sus elementos. En general, NumPy puede combinar arrays de distintas formas cuando sus dimensiones son compatibles según las reglas de broadcasting. Las dimensiones son compatibles si son iguales o si una de ellas vale 1; se comparan de derecha a izquierda y las dimensiones iniciales que falten se consideran iguales a 1. Consulta la guía de broadcasting de NumPy para ver las reglas completas y ejemplos. Por ejemplo, un array de forma (2, 3) puede multiplicarse elemento a elemento por uno de forma (3,), porque este último se alinea con la dimensión final. Las formas que no cumplen estas reglas de compatibilidad no pueden multiplicarse elemento a elemento de esta manera. El broadcasting no vuelve compatibles formas arbitrarias.
Estas operaciones calculan productos elemento a elemento; no realizan una multiplicación matricial. Para multiplicar por un escalar, usa values * scale o numpy.multiply(values, scale) y luego inspecciona o utiliza el array devuelto según necesites.