Contenido del Curso
Ultimate NumPy
Ultimate NumPy
2. Indexación y Segmentación
3. Funciones de NumPy comúnmente utilizadas
Transmisión
Antes de sumergirnos en las operaciones matemáticas en NumPy vamos a echar un vistazo más de cerca a un concepto importante, broadcasting.
Como ya hemos mencionado antes, broadcasting permite operaciones elemento a elemento entre arrays de formas compatibles extendiendo el array de menor dimensión para que tenga el mismo número de dimensiones que el array de mayor dimensión.
Si dos matrices ya tienen el mismo número de dimensiones, no es necesario extenderlas.
Así es como se determina la compatibilidad de formas: dadas dos matrices, NumPy compara sus formas elemento a elemento. Comienza mirando las dimensiones de la derecha y se mueve hacia la izquierda.
Dos dimensiones se consideran compatibles cuando se cumple una de las condiciones:
- son del mismo tamaño (iguales);
- una de las dimensiones es
1
.
Dos formas se consideran compatibles cuando todas sus dimensiones respectivas son compatibles.
Nota
Cuando se comprueba la compatibilidad de las formas, y una matriz tiene más dimensiones que la otra, se supone que las dimensiones que faltan tienen el tamaño igual a
1
.
No te preocupes, aquí tienes algunos ejemplos para aclarar las cosas:
![Broadcasting a scalar to a 1D array](https://codefinity-content-media-v2.s3.eu-west-1.amazonaws.com/courses/4f4826d5-e2f8-4ffd-9fd0-6f513353d70a/section_4/broadcasting_1d.png)
Como puedes ver, un escalar en nuestro ejemplo se transmite a un array 1D.
Determining Compatibility of Shapes
Given two arrays, NumPy checks their shapes to determine if they can be broadcast together. Here's how it works:
- Shape Comparison: NumPy compares the shapes of the two arrays starting from the rightmost dimension and moving left;
- Compatibility Conditions: Two dimensions are considered compatible if:
- They are the same size (equal);
- One of the dimensions is
1
.
- Handling Different Number of Dimensions: If one array has fewer dimensions than the other, the missing dimensions are treated as having size
1
.
Don't worry, here are some examples to clarify things:
![Broadcasting a scalar to a 1D array](https://codefinity-content-media-v2.s3.eu-west-1.amazonaws.com/courses/4f4826d5-e2f8-4ffd-9fd0-6f513353d70a/section_4/broadcasting_1d.png)
As you can see, a scalar in our example is broadcast to a 1D array.
![Broadcasting a scalar to a 2D array](https://codefinity-content-media-v2.s3.eu-west-1.amazonaws.com/courses/4f4826d5-e2f8-4ffd-9fd0-6f513353d70a/section_4/broadcasting_2d.png)
Now a scalar is broadcast to a 2D array. In fact, a scalar is always compatible to an array of any shape
![Broadcasting a 1D array to a 2D array](https://codefinity-content-media-v2.s3.eu-west-1.amazonaws.com/courses/4f4826d5-e2f8-4ffd-9fd0-6f513353d70a/section_4/broadcasting_2d_1d.png)
En este ejemplo, un array 1D se transmite a un array 2D, ya que sus formas son compatibles.
![Non-compatible shapes](https://codefinity-content-media-v2.s3.eu-west-1.amazonaws.com/courses/4f4826d5-e2f8-4ffd-9fd0-6f513353d70a/section_4/non_compatible_shapes.png)
Aquí tenemos un arreglo unidimensional con una forma incompatible con nuestro arreglo bidimensional, debido a que sus últimas dimensiones no son iguales.
Cuando dos arreglos tienen el mismo número de dimensiones, sus formas son compatibles si las formas son iguales (las dimensiones correspondientes son iguales).
Seleccione arreglos con formas compatibles:
Selecciona unas respuestas correctas
¿Todo estuvo claro?
Contenido del Curso
Ultimate NumPy
Ultimate NumPy
2. Indexación y Segmentación
3. Funciones de NumPy comúnmente utilizadas
Transmisión
Antes de sumergirnos en las operaciones matemáticas en NumPy vamos a echar un vistazo más de cerca a un concepto importante, broadcasting.
Como ya hemos mencionado antes, broadcasting permite operaciones elemento a elemento entre arrays de formas compatibles extendiendo el array de menor dimensión para que tenga el mismo número de dimensiones que el array de mayor dimensión.
Si dos matrices ya tienen el mismo número de dimensiones, no es necesario extenderlas.
Así es como se determina la compatibilidad de formas: dadas dos matrices, NumPy compara sus formas elemento a elemento. Comienza mirando las dimensiones de la derecha y se mueve hacia la izquierda.
Dos dimensiones se consideran compatibles cuando se cumple una de las condiciones:
- son del mismo tamaño (iguales);
- una de las dimensiones es
1
.
Dos formas se consideran compatibles cuando todas sus dimensiones respectivas son compatibles.
Nota
Cuando se comprueba la compatibilidad de las formas, y una matriz tiene más dimensiones que la otra, se supone que las dimensiones que faltan tienen el tamaño igual a
1
.
No te preocupes, aquí tienes algunos ejemplos para aclarar las cosas:
![Broadcasting a scalar to a 1D array](https://codefinity-content-media-v2.s3.eu-west-1.amazonaws.com/courses/4f4826d5-e2f8-4ffd-9fd0-6f513353d70a/section_4/broadcasting_1d.png)
Como puedes ver, un escalar en nuestro ejemplo se transmite a un array 1D.
Determining Compatibility of Shapes
Given two arrays, NumPy checks their shapes to determine if they can be broadcast together. Here's how it works:
- Shape Comparison: NumPy compares the shapes of the two arrays starting from the rightmost dimension and moving left;
- Compatibility Conditions: Two dimensions are considered compatible if:
- They are the same size (equal);
- One of the dimensions is
1
.
- Handling Different Number of Dimensions: If one array has fewer dimensions than the other, the missing dimensions are treated as having size
1
.
Don't worry, here are some examples to clarify things:
![Broadcasting a scalar to a 1D array](https://codefinity-content-media-v2.s3.eu-west-1.amazonaws.com/courses/4f4826d5-e2f8-4ffd-9fd0-6f513353d70a/section_4/broadcasting_1d.png)
As you can see, a scalar in our example is broadcast to a 1D array.
![Broadcasting a scalar to a 2D array](https://codefinity-content-media-v2.s3.eu-west-1.amazonaws.com/courses/4f4826d5-e2f8-4ffd-9fd0-6f513353d70a/section_4/broadcasting_2d.png)
Now a scalar is broadcast to a 2D array. In fact, a scalar is always compatible to an array of any shape
![Broadcasting a 1D array to a 2D array](https://codefinity-content-media-v2.s3.eu-west-1.amazonaws.com/courses/4f4826d5-e2f8-4ffd-9fd0-6f513353d70a/section_4/broadcasting_2d_1d.png)
En este ejemplo, un array 1D se transmite a un array 2D, ya que sus formas son compatibles.
![Non-compatible shapes](https://codefinity-content-media-v2.s3.eu-west-1.amazonaws.com/courses/4f4826d5-e2f8-4ffd-9fd0-6f513353d70a/section_4/non_compatible_shapes.png)
Aquí tenemos un arreglo unidimensional con una forma incompatible con nuestro arreglo bidimensional, debido a que sus últimas dimensiones no son iguales.
Cuando dos arreglos tienen el mismo número de dimensiones, sus formas son compatibles si las formas son iguales (las dimensiones correspondientes son iguales).
Seleccione arreglos con formas compatibles:
Selecciona unas respuestas correctas
¿Todo estuvo claro?