Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Arrays Afvlakken | Veelgebruikte NumPy-Functies
Ultieme NumPy

bookArrays Afvlakken

Afvlakken van een array betekent het omzetten van een multi-dimensionale array naar een 1D-array, waarbij de inhoud wordt "uitgerold".

Deze bewerking is nuttig wanneer het nodig is om de elementen van een array één voor één te verwerken of wanneer gegevens geschikter moeten worden gemaakt voor bepaalde algoritmen.

Er zijn drie mogelijke opties voor het afvlakken in NumPy:

  • Gebruik van de methode ndarray.reshape(-1) of de functie numpy.reshape(array, -1);
  • Gebruik van de methode ndarray.ravel() of de functie numpy.ravel(array);
  • Gebruik van de methode ndarray.flatten().

reshape(-1)

De methode .reshape(-1) of de functie reshape(array, -1) retourneert een aaneengesloten afgevlakte array met hetzelfde aantal elementen.

Zoals reeds vermeld in het vorige hoofdstuk, berekent -1 automatisch de grootte van de dimensie op basis van de oorspronkelijke arraygrootte. Omdat slechts één geheel getal wordt doorgegeven voor shape, wordt een 1D-array met hetzelfde aantal elementen geretourneerd.

1234567
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}')
copy

De .reshape()-methode of de overeenkomstige functie retourneert een view van de originele array, waardoor wijzigingen in de herschikte array ook invloed hebben op de originele array.

Het gebruik van flattened_array = np.reshape(array_2d, -1) kan worden toegepast in plaats van het aanroepen van de methode.

ravel()

De ndarray.ravel()-methode of de numpy.ravel(array)-functie werkt hetzelfde als reshape(-1) en retourneert eveneens een view van de originele array:

1234567
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}')
copy

flattened_array = np.ravel(array_2d) kan worden gebruikt in plaats van het aanroepen van de methode.

ndarray.flatten()

Indien een kopie van de oorspronkelijke array gewenst is, en geen view, kan de .flatten()-methode worden gebruikt:

1234567
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}')
copy
Note
Opmerking

Je kunt altijd een kopie van een view van een array maken om een afzonderlijk object te creëren en deze kopie te wijzigen zonder de originele array te beïnvloeden.

Taak

Swipe to start coding

  1. Gebruik de .flatten() methode correct om exam_scores te 'flattenen' en sla het resultaat op in exam_scores_flattened.
  2. Gebruik de .reshape() methode correct om exam_scores te 'flattenen' en sla het resultaat op in exam_scores_reshaped.
  3. Gebruik de .ravel() methode om exam_scores te 'flattenen' en sla het resultaat op in exam_scores_raveled.
  4. Kies van de drie gemaakte 'flattened' arrays degene die een kopie is van de originele array, geen view, en ken 100 toe aan het eerste element (gebruik positieve indexering).

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 5
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

close

Awesome!

Completion rate improved to 3.7

bookArrays Afvlakken

Veeg om het menu te tonen

Afvlakken van een array betekent het omzetten van een multi-dimensionale array naar een 1D-array, waarbij de inhoud wordt "uitgerold".

Deze bewerking is nuttig wanneer het nodig is om de elementen van een array één voor één te verwerken of wanneer gegevens geschikter moeten worden gemaakt voor bepaalde algoritmen.

Er zijn drie mogelijke opties voor het afvlakken in NumPy:

  • Gebruik van de methode ndarray.reshape(-1) of de functie numpy.reshape(array, -1);
  • Gebruik van de methode ndarray.ravel() of de functie numpy.ravel(array);
  • Gebruik van de methode ndarray.flatten().

reshape(-1)

De methode .reshape(-1) of de functie reshape(array, -1) retourneert een aaneengesloten afgevlakte array met hetzelfde aantal elementen.

Zoals reeds vermeld in het vorige hoofdstuk, berekent -1 automatisch de grootte van de dimensie op basis van de oorspronkelijke arraygrootte. Omdat slechts één geheel getal wordt doorgegeven voor shape, wordt een 1D-array met hetzelfde aantal elementen geretourneerd.

1234567
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}')
copy

De .reshape()-methode of de overeenkomstige functie retourneert een view van de originele array, waardoor wijzigingen in de herschikte array ook invloed hebben op de originele array.

Het gebruik van flattened_array = np.reshape(array_2d, -1) kan worden toegepast in plaats van het aanroepen van de methode.

ravel()

De ndarray.ravel()-methode of de numpy.ravel(array)-functie werkt hetzelfde als reshape(-1) en retourneert eveneens een view van de originele array:

1234567
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}')
copy

flattened_array = np.ravel(array_2d) kan worden gebruikt in plaats van het aanroepen van de methode.

ndarray.flatten()

Indien een kopie van de oorspronkelijke array gewenst is, en geen view, kan de .flatten()-methode worden gebruikt:

1234567
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}')
copy
Note
Opmerking

Je kunt altijd een kopie van een view van een array maken om een afzonderlijk object te creëren en deze kopie te wijzigen zonder de originele array te beïnvloeden.

Taak

Swipe to start coding

  1. Gebruik de .flatten() methode correct om exam_scores te 'flattenen' en sla het resultaat op in exam_scores_flattened.
  2. Gebruik de .reshape() methode correct om exam_scores te 'flattenen' en sla het resultaat op in exam_scores_reshaped.
  3. Gebruik de .ravel() methode om exam_scores te 'flattenen' en sla het resultaat op in exam_scores_raveled.
  4. Kies van de drie gemaakte 'flattened' arrays degene die een kopie is van de originele array, geen view, en ken 100 toe aan het eerste element (gebruik positieve indexering).

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 5
single

single

some-alt