Transmisión numpy

Transmisión numpy
No se pueden agregar matrices de diferentes tamaños a, restarse o usarse en aritmética. Duplicando la matriz de pequeños para darle las mismas dimensiones y tamaño que la matriz más grande es un enfoque. Al realizar una aritmética de matriz, Numpy ofrece una característica conocida como transmisión de matriz que puede acortar y simplificar significativamente su código. Aprenderá sobre la idea de la transmisión de matriz y cómo usarla en Numpy en este tutorial. Además, se proporcionan varios programas de ejemplo.

¿Qué es la transmisión Numpy??

Al realizar operaciones aritméticas en matrices de diferentes formas, Numpy se refiere a esto como transmisión. Estas operaciones de matriz se realizan con frecuencia en los elementos respectivos. Si dos matrices tienen la misma forma, se puede hacer con facilidad. Aunque este concepto es útil, la transmisión no siempre se recomienda porque puede dar como resultado un uso ineficiente de la memoria que ralentiza el cálculo. Las operaciones numpy a menudo se realizan en pares de matriz que se descomponen el elemento por elemento.

Reglas de transmisión

Se debe seguir un conjunto particular de pautas al transmitir. Estos se describen a continuación:

  1. La forma de la matriz de rango inferior es importante para preferirse con 1S hasta que ambas formas de las matrices compartan la misma longitud si dos matrices no tienen el mismo rango.
  2. Se consideran compatibles dos matrices si tienen el mismo tamaño de dimensión o si uno de ellos tiene el tamaño de la dimensión establecido en 1.
  3. Las matrices solo se pueden transmitir juntas si sus tamaños y dimensiones coinciden.
  4. Una vez que se completa la transmisión, cada matriz actúa como si su forma coincida con la del elemento más grande en las formas de las dos matrices de entrada.
  5. Una de las matrices se comporta como si se replicara con esa dimensión si la otra matriz tiene una dimensión mayor que 1 y la primera matriz tiene una dimensión de 1.

Ahora, discutamos algunos ejemplos de implementación del concepto de transmisión.

Ejemplo 1:

En pares de matrices, las operaciones numpy generalmente se realizan elemento por elemento. Las dos matrices deben, en el escenario más sencillo, tener la misma forma, como en el ejemplo a continuación:

importar numpy
One_arr = Numpy.matriz ([2.0, 3.0, 1.0])
Two_arr = Numpy.matriz ([3.0, 3.0, 3.0])
imprimir (One_arr * two_arr)

Como puede ver en el código anterior, tenemos dos matrices: 'one_arr' y 'two_ arr'. Cada uno de los cuales tiene un conjunto separado de valores. Los valores en 'One_arr' son [2.0,3.0,1.0] y 'dos ​​_arr' son [3.0,3.0,3.0]. Luego puede ver que el resultado de calcular el producto de estas dos matrices es el siguiente:

Cuando los formularios de las matrices cumplen ciertos requisitos, la regla de transmisión de Numpy reduce esta restricción. Cuando una matriz y un valor escalar se unen en una operación, la transmisión se demuestra en su forma más básica. Como puede ver, 3 está contenido en la variable llamada 'Two_arr.'

importar numpy
One_arr = Numpy.matriz ([2.0, 3.0, 1.0])
Two_arr = 3.0
imprimir (One_arr * two_arr)

El código anterior produce el siguiente resultado.

En el ejemplo anterior, donde 'two_arr' fue una matriz, el resultado es equivalente. Podemos imaginar que el escalar 'two_arr' se expande durante el proceso aritmético en una matriz que tiene la misma forma que 'one _arr.'The Array' Two_arr 'contiene nuevos elementos que son simplemente duplicados del primer escalar. La comparación de estiramiento es simplemente hipotética. Para que las operaciones de transmisión como memoria y computacionalmente económica como factible, Numpy es lo suficientemente inteligente como para usar el valor escalar original en lugar de producir copias.

Ejemplo 2:

Aquí hay otro programa simple de Python que realiza la transmisión. Una vez más, se crean dos matrices que contienen diferentes valores. Es necesario remodelar 'First_arr' en un vector de columna con una forma de 3 × 1 para calcular un producto exterior. Después de esto, la transmisión se realiza contra 'Second_arr' para proporcionar un resultado del tamaño 3 × 2, conocido como el producto exterior de 'First_arr' y 'Second_arr.'La transmisión a 2 × 3 es posible ya que' result_arr 'tiene la forma 2 × 3, así como la forma (3,).

Después de seguir todos los pasos mencionados anteriormente, se debe incluir un vector en cada columna de las matrices que son 'result_arr' y 'Second_arr.'Estos tienen dimensiones de 2 × 3 y (2,). La transposición 'result_arr' producirá una forma de 3 × 2, que luego se puede transmitir contra 'Second_arr' para obtener la misma forma. Por lo general, la transposición de esto produce un producto final en la forma 2 × 3.

importar numpy
First_arr = Numpy.Array ([12, 24, 14])
Second_arr = Numpy.Array ([15, 22])
Impresión (Numpy.reashape (first_arr, (3, 1)) * Second_arr)
result_arr = numpy.Array ([[12, 22, 31], [15, 22, 45]])
imprimir (result_arr + first_arr)
imprimir ((result_arr.T + Second_arr).T)
imprimir (resultado_arr + numpy.remodelar (segundo_arr, (2, 1)))
imprimir (result_arr * 2)

Puede ver la salida a continuación.

Ejemplo 3:

Se puede transmitir una matriz tridimensional utilizando el siguiente programa Python. En este ejemplo, se han generado dos matrices llamadas 'First_arr' y 'Second_arr'. La matriz 'First_arr' contiene [4,13,26,12] valores y 'Second_arr' contiene [32,67,45,17] valores. Las 2 dimensiones de la matriz inicial marcan la diferencia. La suma de la primera y segunda matriz se mostrará a continuación después de que se haya ejecutado el código. Puede ver que tenemos tres declaraciones de impresión en el código, cada una de las cuales muestra el texto 'Primera matriz:', 'Segunda matriz' y 'Tercera matriz:' a su vez. Luego se muestra la suma de estas dos matrices recién generadas.

importar numpy
First_arr = Numpy.Array ([[4, 13, 26, 12], [32, 67, 45, 17]])
Second_arr = Numpy.Array ([24,45,66,87])
Imprimir ("\ n Primera matriz:")
Imprimir (First_arr)
imprimir ("\ n segunda matriz:")
Imprimir (Second_arr)
Imprimir ("\ nsum de la primera y segunda matriz:")
sum_result = first_arr + segundo_arr;
Imprimir (Sum_Result)

Aquí está la captura de pantalla de salida del código dado.

Ejemplo 4:

El último programa de Python que transmite una matriz tridimensional se da aquí. Se especifican dos matrices en este programa, la primera de las cuales tiene tres dimensiones. La suma de la primera y segunda matriz se mostrará como se muestra arriba después de que se haya ejecutado el código. Aunque los valores en estas matrices varían, el código restante es el mismo que el utilizado en el programa de ejemplo anterior.

importar numpy
First_arr = Numpy.Array ([[12, 45, 22, 13], [22, 54, 25, 12], [50, 40, 18, 26]]))
Second_arr = Numpy.Array ([12,44,22,12])
Imprimir ("\ n Primera matriz:")
Imprimir (First_arr)
imprimir ("\ n segunda matriz:")
Imprimir (Second_arr)
Imprimir ("\ nsum de la primera y segunda matriz:")
sum_result = first_arr + segundo_arr;
Imprimir (Sum_Result)

Puede ver en la figura a continuación que se presenta una matriz tridimensional de la primera matriz, seguido de una matriz bidimensional de la segunda matriz y el resultado de estos dos empleando el principio de transmisión.

Conclusión

Este artículo discutió la transmisión, un concepto crucial de Python. En Numpy, el término 'transmisión' se refiere a la capacidad de manejar matrices de varias formas mientras realiza operaciones aritméticas que se realizan con frecuencia. El tema antes mencionado ha sido completamente cubierto con una variedad de ejemplos. Este artículo utilizó los programas de ejemplo mencionados para demostrar cómo transmitir en matrices 1-D, 2-D y 3-D, respectivamente. Puede intentar ejecutar estos ejemplos en su sistema y ver los resultados para comprender mejor cómo funciona todo en general.