Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Atribuição de Valores a Subarrays Indexados | Indexação e Fatiamento
Numpy Básico

bookAtribuição de Valores a Subarrays Indexados

Com arrays indexados, as operações tornam-se mais interessantes. Aqui, o foco será em subarrays 1D e 2D, pois subarrays 3D são raramente utilizados na prática.

Vamos começar atribuindo valores a fatias. A sintaxe geral é: slice = values, onde slice é uma fatia de um determinado array e values são os valores a serem atribuídos.

Formatos possíveis para values:

  • um escalar único (número);
  • um array 1D do mesmo tamanho da fatia (se for 1D); ou do tamanho da segunda dimensão (se a fatia for 2D);
  • um array 2D com o mesmo formato de uma fatia 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

Ao atribuir um escalar a uma fatia 1D, esse escalar é atribuído a cada elemento da fatia. Quando um array 1D é atribuído a uma fatia 2D, esse array 1D é atribuído a cada array 1D na fatia. A atribuição de um escalar a uma fatia 2D funciona da mesma forma que em uma fatia 1D.

A atribuição de valores a subarrays indexados por array de inteiros funciona da mesma maneira que com fatias. A atribuição de valores a subarrays indexados por booleanos funciona da mesma forma que com fatias 1D.

Tarefa

Swipe to start coding

Você está gerenciando um conjunto de dados de preços e avaliações de produtos. Os preços estão armazenados no array prices, e as avaliações (de 0 a 10) estão armazenadas no array ratings, onde cada linha representa uma categoria de produto diferente. Sua tarefa é atualizar os preços e avaliações com base em critérios específicos:

  1. Atribuir o valor 20 a cada elemento em prices maior que 10 (indexação booleana) utilizando um escalar.
  2. Atribuir um array NumPy com os elementos 9, 8 aos dois últimos elementos da segunda linha (segundo array 1D) de ratings. Utilize um índice de linha positivo e um slice especificando apenas o start (índice positivo).

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 10
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

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

bookAtribuição de Valores a Subarrays Indexados

Deslize para mostrar o menu

Com arrays indexados, as operações tornam-se mais interessantes. Aqui, o foco será em subarrays 1D e 2D, pois subarrays 3D são raramente utilizados na prática.

Vamos começar atribuindo valores a fatias. A sintaxe geral é: slice = values, onde slice é uma fatia de um determinado array e values são os valores a serem atribuídos.

Formatos possíveis para values:

  • um escalar único (número);
  • um array 1D do mesmo tamanho da fatia (se for 1D); ou do tamanho da segunda dimensão (se a fatia for 2D);
  • um array 2D com o mesmo formato de uma fatia 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

Ao atribuir um escalar a uma fatia 1D, esse escalar é atribuído a cada elemento da fatia. Quando um array 1D é atribuído a uma fatia 2D, esse array 1D é atribuído a cada array 1D na fatia. A atribuição de um escalar a uma fatia 2D funciona da mesma forma que em uma fatia 1D.

A atribuição de valores a subarrays indexados por array de inteiros funciona da mesma maneira que com fatias. A atribuição de valores a subarrays indexados por booleanos funciona da mesma forma que com fatias 1D.

Tarefa

Swipe to start coding

Você está gerenciando um conjunto de dados de preços e avaliações de produtos. Os preços estão armazenados no array prices, e as avaliações (de 0 a 10) estão armazenadas no array ratings, onde cada linha representa uma categoria de produto diferente. Sua tarefa é atualizar os preços e avaliações com base em critérios específicos:

  1. Atribuir o valor 20 a cada elemento em prices maior que 10 (indexação booleana) utilizando um escalar.
  2. Atribuir um array NumPy com os elementos 9, 8 aos dois últimos elementos da segunda linha (segundo array 1D) de ratings. Utilize um índice de linha positivo e um slice especificando apenas o start (índice positivo).

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 10
single

single

some-alt