Asignación de Valores a Elementos/Indexados Subarreglos
Suele ocurrir cuando necesitamos asignar un determinado valor a un elemento concreto de un array o incluso valores a un subarray de elementos.
Asignación de valores a elementos indexados
En primer lugar, podemos asignar un valor a un elemento indexado de un array. He aquí la sintaxis general para lograrlo en arrays 1D: array[i] = n
, donde i
es un cierto índice y n
es el valor a asignar.
En arrays 2D tenemos lo siguiente: array[i, j] = n
, donde i
y j
son índices de fila y índices de columna respectivamente. Para matrices de mayor dimensión, el número de índices corresponde al número de dimensiones.
Veamos un ejemplo:
Como puede ver, aquí todo es bastante sencillo.
Nota
Asignar valores de tipos de datos más altos a elementos con tipos de datos más bajos (por ejemplo, un valor
float
a un elemento entero) provocará resultados inesperados o incluso un error.
Los tipos de datos más altos son los que pueden almacenar un mayor rango de valores y suelen ocupar más memoria.
He aquí un ejemplo:
No se lanzó ninguna excepción, sin embargo, al primer elemento se le asignó el valor de 10
en lugar de 10.2
. El valor float
fue convertido a un integer, ya que ese es el dtype
del array.
Asignación de valores a submatrices indexadas
Con las matrices indexadas las cosas empiezan a ponerse más interesantes. Aquí nos centraremos en las submatrices 1D y 2D, ya que las submatrices 3D raramente se utilizan en la práctica.
Empecemos con la asignación de valores a rebanadas. La sintaxis general es la siguiente rebanada = valores
, donde rebanada
es una rebanada de un array determinado y valores
son los valores a asignar.
Posibles formatos de values
:
- un escalar único (número);
- una matriz 1D del mismo tamaño que la porción (si es 1D) o que el tamaño de la segunda dimensión (si la porción es 2D);
- un array 2D de la misma forma que una rebanada 2D.
No te preocupes, aquí tienes un ejemplo para aclarar todo esto:
Visualicémoslo ahora:
Tarea
- Assign the value of
10
to every element inarray_1d
greater than 6 (boolean indexing) using a scalar. - Assign a NumPy array with elements
2
,4
and5
to the last three elements of the second row (second 1D array) ofarray_2d
. Use a positive row index and a slice with specifying onlystart
(positive index).
¿Todo estuvo claro?
Contenido del Curso
Ultimate NumPy
2. Indexación y Segmentación
3. Funciones de NumPy comúnmente utilizadas
Ultimate NumPy
Asignación de Valores a Elementos/Indexados Subarreglos
Suele ocurrir cuando necesitamos asignar un determinado valor a un elemento concreto de un array o incluso valores a un subarray de elementos.
Asignación de valores a elementos indexados
En primer lugar, podemos asignar un valor a un elemento indexado de un array. He aquí la sintaxis general para lograrlo en arrays 1D: array[i] = n
, donde i
es un cierto índice y n
es el valor a asignar.
En arrays 2D tenemos lo siguiente: array[i, j] = n
, donde i
y j
son índices de fila y índices de columna respectivamente. Para matrices de mayor dimensión, el número de índices corresponde al número de dimensiones.
Veamos un ejemplo:
Como puede ver, aquí todo es bastante sencillo.
Nota
Asignar valores de tipos de datos más altos a elementos con tipos de datos más bajos (por ejemplo, un valor
float
a un elemento entero) provocará resultados inesperados o incluso un error.
Los tipos de datos más altos son los que pueden almacenar un mayor rango de valores y suelen ocupar más memoria.
He aquí un ejemplo:
No se lanzó ninguna excepción, sin embargo, al primer elemento se le asignó el valor de 10
en lugar de 10.2
. El valor float
fue convertido a un integer, ya que ese es el dtype
del array.
Asignación de valores a submatrices indexadas
Con las matrices indexadas las cosas empiezan a ponerse más interesantes. Aquí nos centraremos en las submatrices 1D y 2D, ya que las submatrices 3D raramente se utilizan en la práctica.
Empecemos con la asignación de valores a rebanadas. La sintaxis general es la siguiente rebanada = valores
, donde rebanada
es una rebanada de un array determinado y valores
son los valores a asignar.
Posibles formatos de values
:
- un escalar único (número);
- una matriz 1D del mismo tamaño que la porción (si es 1D) o que el tamaño de la segunda dimensión (si la porción es 2D);
- un array 2D de la misma forma que una rebanada 2D.
No te preocupes, aquí tienes un ejemplo para aclarar todo esto:
Visualicémoslo ahora:
Tarea
- Assign the value of
10
to every element inarray_1d
greater than 6 (boolean indexing) using a scalar. - Assign a NumPy array with elements
2
,4
and5
to the last three elements of the second row (second 1D array) ofarray_2d
. Use a positive row index and a slice with specifying onlystart
(positive index).
¿Todo estuvo claro?