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.

Primero, comencemos asignando valores a rebanadas. La sintaxis general es la siguiente: slice = values, donde slice es una rebanada 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 la rebanada (si es 1D); o del tamaño de la segunda dimensión (si la rebanada es 2D);
  • un array 2D de la misma forma que una rebanada 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 una rebanada 1D, este escalar se asigna a cada elemento de la rebanada. Cuando un array 1D se asigna a una rebanada 2D, este array 1D se asigna a cada array 1D en la rebanada. Asignar un escalar a una rebanada 2D funciona igual que con una rebanada 1D.

Asignar valores a subarrays indexados mediante arrays de enteros funciona de la misma manera que con las rebanadas. Asignar valores a subarrays indexados mediante booleanos funciona igual que con las rebanadas 1D.

Tarea

Swipe to start coding

Estás gestionando un conjunto de datos de precios y calificaciones de productos. Los precios se almacenan en el arreglo prices, y las calificaciones (sobre 10) se almacenan en el arreglo ratings, donde cada fila representa una categoría de producto diferente. Tu tarea es actualizar los precios y 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 arreglo de NumPy con los elementos 9, 8 a los dos últimos elementos de la segunda fila (segundo arreglo 1D) de ratings. Utiliza 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

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.

Primero, comencemos asignando valores a rebanadas. La sintaxis general es la siguiente: slice = values, donde slice es una rebanada 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 la rebanada (si es 1D); o del tamaño de la segunda dimensión (si la rebanada es 2D);
  • un array 2D de la misma forma que una rebanada 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 una rebanada 1D, este escalar se asigna a cada elemento de la rebanada. Cuando un array 1D se asigna a una rebanada 2D, este array 1D se asigna a cada array 1D en la rebanada. Asignar un escalar a una rebanada 2D funciona igual que con una rebanada 1D.

Asignar valores a subarrays indexados mediante arrays de enteros funciona de la misma manera que con las rebanadas. Asignar valores a subarrays indexados mediante booleanos funciona igual que con las rebanadas 1D.

Tarea

Swipe to start coding

Estás gestionando un conjunto de datos de precios y calificaciones de productos. Los precios se almacenan en el arreglo prices, y las calificaciones (sobre 10) se almacenan en el arreglo ratings, donde cada fila representa una categoría de producto diferente. Tu tarea es actualizar los precios y 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 arreglo de NumPy con los elementos 9, 8 a los dos últimos elementos de la segunda fila (segundo arreglo 1D) de ratings. Utiliza 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