Achatamento de Arrays
Achatamento de um array significa convertê-lo de um array multidimensional para um array 1D, essencialmente desenrolando seu conteúdo.
Esta operação é útil quando é necessário processar os elementos de um array um por um ou quando se deseja tornar os dados mais adequados para determinados algoritmos.
Existem três opções possíveis para achatamento em NumPy:
- Utilizando o método
ndarray.reshape(-1)
ou a funçãonumpy.reshape(array, -1)
; - Utilizando o método
ndarray.ravel()
ou a funçãonumpy.ravel(array)
; - Utilizando o método
ndarray.flatten()
.
reshape(-1)
O método .reshape(-1)
ou a função reshape(array, -1)
retorna um array achatado contíguo com o mesmo número de elementos.
Como já mencionado no capítulo anterior, -1
calcula automaticamente o tamanho da dimensão com base no tamanho do array original. Como passamos apenas um único inteiro para shape
, é retornado um array 1D com o mesmo número de elementos.
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
O método .reshape()
ou a respectiva função retorna uma visualização do array original, portanto, quaisquer alterações feitas no array reformatado também afetarão o array original.
Utilizar flattened_array = np.reshape(array_2d, -1)
pode ser uma alternativa à chamada do método.
ravel()
O método ndarray.ravel()
ou a função numpy.ravel(array)
funciona da mesma forma que reshape(-1)
e também retorna uma visualização do array original:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
flattened_array = np.ravel(array_2d)
pode ser utilizado em vez de chamar o método.
ndarray.flatten()
Caso seja necessário uma cópia do array original, e não uma visualização, utilize o método .flatten()
:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
Você pode sempre copiar uma visualização de um array para criar um objeto separado e modificar essa cópia sem afetar o array original.
Swipe to start coding
- Utilize corretamente o método
.flatten()
para achatarexam_scores
e armazene o resultado emexam_scores_flattened
. - Utilize corretamente o método
.reshape()
para achatarexam_scores
e armazene o resultado emexam_scores_reshaped
. - Utilize o método
.ravel()
para achatarexam_scores
e armazene o resultado emexam_scores_raveled
. - Entre os três arrays achatados criados, escolha aquele que é uma cópia do array original, e não uma visualização, e atribua
100
ao seu primeiro elemento (utilize indexação positiva).
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.7
Achatamento de Arrays
Deslize para mostrar o menu
Achatamento de um array significa convertê-lo de um array multidimensional para um array 1D, essencialmente desenrolando seu conteúdo.
Esta operação é útil quando é necessário processar os elementos de um array um por um ou quando se deseja tornar os dados mais adequados para determinados algoritmos.
Existem três opções possíveis para achatamento em NumPy:
- Utilizando o método
ndarray.reshape(-1)
ou a funçãonumpy.reshape(array, -1)
; - Utilizando o método
ndarray.ravel()
ou a funçãonumpy.ravel(array)
; - Utilizando o método
ndarray.flatten()
.
reshape(-1)
O método .reshape(-1)
ou a função reshape(array, -1)
retorna um array achatado contíguo com o mesmo número de elementos.
Como já mencionado no capítulo anterior, -1
calcula automaticamente o tamanho da dimensão com base no tamanho do array original. Como passamos apenas um único inteiro para shape
, é retornado um array 1D com o mesmo número de elementos.
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
O método .reshape()
ou a respectiva função retorna uma visualização do array original, portanto, quaisquer alterações feitas no array reformatado também afetarão o array original.
Utilizar flattened_array = np.reshape(array_2d, -1)
pode ser uma alternativa à chamada do método.
ravel()
O método ndarray.ravel()
ou a função numpy.ravel(array)
funciona da mesma forma que reshape(-1)
e também retorna uma visualização do array original:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
flattened_array = np.ravel(array_2d)
pode ser utilizado em vez de chamar o método.
ndarray.flatten()
Caso seja necessário uma cópia do array original, e não uma visualização, utilize o método .flatten()
:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
Você pode sempre copiar uma visualização de um array para criar um objeto separado e modificar essa cópia sem afetar o array original.
Swipe to start coding
- Utilize corretamente o método
.flatten()
para achatarexam_scores
e armazene o resultado emexam_scores_flattened
. - Utilize corretamente o método
.reshape()
para achatarexam_scores
e armazene o resultado emexam_scores_reshaped
. - Utilize o método
.ravel()
para achatarexam_scores
e armazene o resultado emexam_scores_raveled
. - Entre os três arrays achatados criados, escolha aquele que é uma cópia do array original, e não uma visualização, e atribua
100
ao seu primeiro elemento (utilize indexação positiva).
Solução
Obrigado pelo seu feedback!
single