Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Asignación de Valores a Subarreglos Indexados | Indexación y Segmentación
Numpy Definitivo

bookAsignación de Valores a Subarreglos Indexados

Con los arrays indexados, las cosas comienzan a ser más interesantes. Aquí nos centraremos en subarrays 1D y 2D, ya que los subarrays 3D rara vez se utilizan en la práctica.

Comencemos primero con la asignación de valores a segmentos. La sintaxis general es la siguiente: slice = values, donde slice es un segmento de un determinado array y values son los valores que se asignarán.

Formatos posibles de values:

  • un único escalar (número);
  • un array 1D del mismo tamaño que el segmento (si es 1D); o del tamaño de la segunda dimensión (si el segmento es 2D);
  • un array 2D de la misma forma que un segmento 2D.
123456789101112131415161718
import numpy as np array_1d = np.array([1, 4, 6, 2, 9]) # Assigning an array to the slice of array_1d array_1d[1:-1] = np.array([3, 5, 7]) print(array_1d) # Assigning a scalar to the slice of array_1d array_1d[1:-1] = 5 print(array_1d) array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) # Assigning a 2D array to the slice of array_2d array_2d[1:3, 1:] = np.array([[20, 21], [40, 41]]) print(array_2d) # Assigning a 1D array to the slice of array_2d array_2d[1:3, 1:] = [50, 51] print(array_2d) # Assigning a scalar to the slice of array_2d array_2d[1:3, 1:] = 30 print(array_2d)
copy

Cuando se asigna un escalar a un segmento 1D, este escalar se asigna a cada elemento del segmento. Cuando un array 1D se asigna a un segmento 2D, este array 1D se asigna a cada array 1D dentro del segmento. Asignar un escalar a un segmento 2D funciona igual que con un segmento 1D.

La asignación de valores a subarrays indexados por arrays de enteros funciona de la misma manera que con los segmentos. La asignación de valores a subarrays indexados por booleanos funciona igual que con los segmentos 1D.

Tarea

Swipe to start coding

Está gestionando un conjunto de datos de precios y calificaciones de productos. Los precios se almacenan en el array prices, y las calificaciones (sobre 10) se almacenan en el array ratings, donde cada fila representa una categoría de producto diferente. Su tarea es actualizar los precios y las calificaciones según criterios específicos:

  1. Asignar el valor 20 a cada elemento de prices mayor que 10 (indexación booleana) utilizando un escalar.
  2. Asignar un array de NumPy con los elementos 9, 8 a los dos últimos elementos de la segunda fila (segundo array 1D) de ratings. Utilice un índice de fila positivo y un slice especificando solo start (índice positivo).

Solución

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 10
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain what happens if the shapes of the assigned values and the slice don't match?

Can you show more examples of assigning values to slices using boolean indexing?

What is the difference between assigning a 1D array and a 2D array to a 2D slice?

close

Awesome!

Completion rate improved to 3.7

bookAsignación de Valores a Subarreglos Indexados

Desliza para mostrar el menú

Con los arrays indexados, las cosas comienzan a ser más interesantes. Aquí nos centraremos en subarrays 1D y 2D, ya que los subarrays 3D rara vez se utilizan en la práctica.

Comencemos primero con la asignación de valores a segmentos. La sintaxis general es la siguiente: slice = values, donde slice es un segmento de un determinado array y values son los valores que se asignarán.

Formatos posibles de values:

  • un único escalar (número);
  • un array 1D del mismo tamaño que el segmento (si es 1D); o del tamaño de la segunda dimensión (si el segmento es 2D);
  • un array 2D de la misma forma que un segmento 2D.
123456789101112131415161718
import numpy as np array_1d = np.array([1, 4, 6, 2, 9]) # Assigning an array to the slice of array_1d array_1d[1:-1] = np.array([3, 5, 7]) print(array_1d) # Assigning a scalar to the slice of array_1d array_1d[1:-1] = 5 print(array_1d) array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) # Assigning a 2D array to the slice of array_2d array_2d[1:3, 1:] = np.array([[20, 21], [40, 41]]) print(array_2d) # Assigning a 1D array to the slice of array_2d array_2d[1:3, 1:] = [50, 51] print(array_2d) # Assigning a scalar to the slice of array_2d array_2d[1:3, 1:] = 30 print(array_2d)
copy

Cuando se asigna un escalar a un segmento 1D, este escalar se asigna a cada elemento del segmento. Cuando un array 1D se asigna a un segmento 2D, este array 1D se asigna a cada array 1D dentro del segmento. Asignar un escalar a un segmento 2D funciona igual que con un segmento 1D.

La asignación de valores a subarrays indexados por arrays de enteros funciona de la misma manera que con los segmentos. La asignación de valores a subarrays indexados por booleanos funciona igual que con los segmentos 1D.

Tarea

Swipe to start coding

Está gestionando un conjunto de datos de precios y calificaciones de productos. Los precios se almacenan en el array prices, y las calificaciones (sobre 10) se almacenan en el array ratings, donde cada fila representa una categoría de producto diferente. Su tarea es actualizar los precios y las calificaciones según criterios específicos:

  1. Asignar el valor 20 a cada elemento de prices mayor que 10 (indexación booleana) utilizando un escalar.
  2. Asignar un array de NumPy con los elementos 9, 8 a los dos últimos elementos de la segunda fila (segundo array 1D) de ratings. Utilice un índice de fila positivo y un slice especificando solo start (índice positivo).

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 10
single

single

some-alt