Conteúdo do Curso
Ultimate NumPy
Ultimate NumPy
Flattening Arrays
Sometimes you may need to transform higher-dimensional arrays into simpler 1D arrays. This is where array flattening comes into play.
This operation is useful when you need to process the elements of an array one by one or when you want to make data more suitable for certain algorithms.
There are three possible options for flattening in NumPy:
- Using the
ndarray.reshape(-1)
method or thenumpy.reshape(array, -1)
function; - Using the
ndarray.ravel()
method or thenumpy.ravel(array)
function; - Using the
ndarray.flatten()
method.
reshape(-1)
The .reshape(-1)
method or the reshape(array, -1)
function will return a contiguous flattened array with the same number of elements.
As we have already mentioned in the previous chapter, -1
automatically calculates the size of the dimension based on the original array's size. Since we pass only a single integer for shape
, a 1D array with the same number of elements is returned.
Here is an example:
import 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}')
As you can see, everything is simple here. However, the .reshape()
method or the respective function returns a view of the original array, so any changes made to the reshaped array will also affect the original array.
Using flattened_array = np.reshape(array_2d, -1)
can be used instead of calling the method.
ravel()
The ndarray.ravel()
method or the numpy.ravel(array)
function works the same as reshape(-1)
and also returns a view of the original array:
import 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)
can be used instead of calling the method.
ndarray.flatten()
In case you want a copy of the original array, not a view, you can use the .flatten()
method:
import 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}')
Now the changes in the flattened array do not affect the original array.
Note
You can always copy a view of an array to create a separate object and modify this copy without affecting the original array.
Tarefa
Here's how you can complete the tasks:
- Use the
.flatten()
method correctly for flatteningexam_scores
and store the result inexam_scores_flattened
. - Use the
.reshape()
method correctly for flatteningexam_scores
and store the result inexam_scores_reshaped
. - Use the
.ravel()
method for flatteningexam_scores
and store the result inexam_scores_raveled
. - Out of the three created flattened arrays, choose the one that is a copy of the original array, not a view, and assign
100
to its first element (use positive indexing).
Obrigado pelo seu feedback!
Flattening Arrays
Sometimes you may need to transform higher-dimensional arrays into simpler 1D arrays. This is where array flattening comes into play.
This operation is useful when you need to process the elements of an array one by one or when you want to make data more suitable for certain algorithms.
There are three possible options for flattening in NumPy:
- Using the
ndarray.reshape(-1)
method or thenumpy.reshape(array, -1)
function; - Using the
ndarray.ravel()
method or thenumpy.ravel(array)
function; - Using the
ndarray.flatten()
method.
reshape(-1)
The .reshape(-1)
method or the reshape(array, -1)
function will return a contiguous flattened array with the same number of elements.
As we have already mentioned in the previous chapter, -1
automatically calculates the size of the dimension based on the original array's size. Since we pass only a single integer for shape
, a 1D array with the same number of elements is returned.
Here is an example:
import 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}')
As you can see, everything is simple here. However, the .reshape()
method or the respective function returns a view of the original array, so any changes made to the reshaped array will also affect the original array.
Using flattened_array = np.reshape(array_2d, -1)
can be used instead of calling the method.
ravel()
The ndarray.ravel()
method or the numpy.ravel(array)
function works the same as reshape(-1)
and also returns a view of the original array:
import 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)
can be used instead of calling the method.
ndarray.flatten()
In case you want a copy of the original array, not a view, you can use the .flatten()
method:
import 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}')
Now the changes in the flattened array do not affect the original array.
Note
You can always copy a view of an array to create a separate object and modify this copy without affecting the original array.
Tarefa
Here's how you can complete the tasks:
- Use the
.flatten()
method correctly for flatteningexam_scores
and store the result inexam_scores_flattened
. - Use the
.reshape()
method correctly for flatteningexam_scores
and store the result inexam_scores_reshaped
. - Use the
.ravel()
method for flatteningexam_scores
and store the result inexam_scores_raveled
. - Out of the three created flattened arrays, choose the one that is a copy of the original array, not a view, and assign
100
to its first element (use positive indexing).
Obrigado pelo seu feedback!
Flattening Arrays
Sometimes you may need to transform higher-dimensional arrays into simpler 1D arrays. This is where array flattening comes into play.
This operation is useful when you need to process the elements of an array one by one or when you want to make data more suitable for certain algorithms.
There are three possible options for flattening in NumPy:
- Using the
ndarray.reshape(-1)
method or thenumpy.reshape(array, -1)
function; - Using the
ndarray.ravel()
method or thenumpy.ravel(array)
function; - Using the
ndarray.flatten()
method.
reshape(-1)
The .reshape(-1)
method or the reshape(array, -1)
function will return a contiguous flattened array with the same number of elements.
As we have already mentioned in the previous chapter, -1
automatically calculates the size of the dimension based on the original array's size. Since we pass only a single integer for shape
, a 1D array with the same number of elements is returned.
Here is an example:
import 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}')
As you can see, everything is simple here. However, the .reshape()
method or the respective function returns a view of the original array, so any changes made to the reshaped array will also affect the original array.
Using flattened_array = np.reshape(array_2d, -1)
can be used instead of calling the method.
ravel()
The ndarray.ravel()
method or the numpy.ravel(array)
function works the same as reshape(-1)
and also returns a view of the original array:
import 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)
can be used instead of calling the method.
ndarray.flatten()
In case you want a copy of the original array, not a view, you can use the .flatten()
method:
import 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}')
Now the changes in the flattened array do not affect the original array.
Note
You can always copy a view of an array to create a separate object and modify this copy without affecting the original array.
Tarefa
Here's how you can complete the tasks:
- Use the
.flatten()
method correctly for flatteningexam_scores
and store the result inexam_scores_flattened
. - Use the
.reshape()
method correctly for flatteningexam_scores
and store the result inexam_scores_reshaped
. - Use the
.ravel()
method for flatteningexam_scores
and store the result inexam_scores_raveled
. - Out of the three created flattened arrays, choose the one that is a copy of the original array, not a view, and assign
100
to its first element (use positive indexing).
Obrigado pelo seu feedback!
Sometimes you may need to transform higher-dimensional arrays into simpler 1D arrays. This is where array flattening comes into play.
This operation is useful when you need to process the elements of an array one by one or when you want to make data more suitable for certain algorithms.
There are three possible options for flattening in NumPy:
- Using the
ndarray.reshape(-1)
method or thenumpy.reshape(array, -1)
function; - Using the
ndarray.ravel()
method or thenumpy.ravel(array)
function; - Using the
ndarray.flatten()
method.
reshape(-1)
The .reshape(-1)
method or the reshape(array, -1)
function will return a contiguous flattened array with the same number of elements.
As we have already mentioned in the previous chapter, -1
automatically calculates the size of the dimension based on the original array's size. Since we pass only a single integer for shape
, a 1D array with the same number of elements is returned.
Here is an example:
import 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}')
As you can see, everything is simple here. However, the .reshape()
method or the respective function returns a view of the original array, so any changes made to the reshaped array will also affect the original array.
Using flattened_array = np.reshape(array_2d, -1)
can be used instead of calling the method.
ravel()
The ndarray.ravel()
method or the numpy.ravel(array)
function works the same as reshape(-1)
and also returns a view of the original array:
import 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)
can be used instead of calling the method.
ndarray.flatten()
In case you want a copy of the original array, not a view, you can use the .flatten()
method:
import 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}')
Now the changes in the flattened array do not affect the original array.
Note
You can always copy a view of an array to create a separate object and modify this copy without affecting the original array.
Tarefa
Here's how you can complete the tasks:
- Use the
.flatten()
method correctly for flatteningexam_scores
and store the result inexam_scores_flattened
. - Use the
.reshape()
method correctly for flatteningexam_scores
and store the result inexam_scores_reshaped
. - Use the
.ravel()
method for flatteningexam_scores
and store the result inexam_scores_raveled
. - Out of the three created flattened arrays, choose the one that is a copy of the original array, not a view, and assign
100
to its first element (use positive indexing).