NumPy- gegevenstypen


Gegevenstypen in Python

Python heeft standaard deze gegevenstypen:

  • strings- gebruikt om tekstgegevens weer te geven, de tekst staat tussen aanhalingstekens. bijv. "ABCD"
  • integer- gebruikt om gehele getallen weer te geven. bijv. -1, -2, -3
  • float- gebruikt om reële getallen weer te geven. bijv. 1.2, 42.42
  • boolean - gebruikt om waar of onwaar weer te geven.
  • complex- gebruikt om complexe getallen weer te geven. bijv. 1.0 + 2.0j, 1.5 + 2.5j

Gegevenstypen in NumPy

NumPy heeft enkele extra datatypes, en verwijst naar datatypes met één teken, zoals ivoor gehele getallen, uvoor niet-ondertekende gehele getallen enz.

Hieronder vindt u een lijst met alle gegevenstypen in NumPy en de tekens die worden gebruikt om ze weer te geven.

  • i - geheel getal
  • b - booleaans
  • u - geheel getal zonder teken
  • f - vlot
  • c - complexe float
  • m - tijddelta
  • M - datum Tijd
  • O - object
  • S - snaar
  • U - Unicode-tekenreeks
  • V - vast stuk geheugen voor ander type ( ongeldig )

Het gegevenstype van een array controleren

Het NumPy array-object heeft een eigenschap genaamd dtype die het gegevenstype van de array retourneert:

Voorbeeld

Haal het gegevenstype van een array-object op:

import numpy as np

arr = np.array([1, 2, 3, 4])

print(arr.dtype)

Voorbeeld

Haal het gegevenstype op van een array die strings bevat:

import numpy as np

arr = np.array(['apple', 'banana', 'cherry'])

print(arr.dtype)


Arrays maken met een gedefinieerd gegevenstype

We gebruiken de array()functie om arrays te maken, deze functie kan een optioneel argument hebben: dtype waarmee we het verwachte gegevenstype van de array-elementen kunnen definiëren:

Voorbeeld

Maak een array met gegevenstypereeks:

import numpy as np

arr = np.array([1, 2, 3, 4], dtype='S')

print(arr)
print(arr.dtype)

Voor i, u, f, Sen Uwe kunnen ook grootte definiëren.

Voorbeeld

Maak een array met gegevenstype 4 bytes integer:

import numpy as np

arr = np.array([1, 2, 3, 4], dtype='i4')

print(arr)
print(arr.dtype)

Wat als een waarde niet kan worden geconverteerd?

Als er een type is opgegeven waarin elementen niet kunnen worden gecast, dan zal NumPy een ValueError opwerpen.

ValueError: In Python wordt ValueError opgeworpen wanneer het type argument dat aan een functie wordt doorgegeven onverwacht/onjuist is.

Voorbeeld

Een niet-integer string zoals 'a' kan niet worden geconverteerd naar integer (zal een fout opleveren):

import numpy as np

arr = np.array(['a', '2', '3'], dtype='i')

Gegevenstype converteren op bestaande arrays

De beste manier om het gegevenstype van een bestaande array te wijzigen, is door een kopie van de array te maken met de astype()methode.

De astype()functie maakt een kopie van de array en stelt u in staat het gegevenstype als parameter op te geven.

Het datatype kan worden gespecificeerd met een string, zoals 'f'voor float, 'i'voor integer enz. of u kunt het datatype rechtstreeks gebruiken zoals floatvoor float en intvoor integer.

Voorbeeld

Wijzig het gegevenstype van float in integer door 'i'als parameterwaarde te gebruiken:

import numpy as np

arr = np.array([1.1, 2.1, 3.1])

newarr = arr.astype('i')

print(newarr)
print(newarr.dtype)

Voorbeeld

Wijzig het gegevenstype van float in integer door intals parameterwaarde te gebruiken:

import numpy as np

arr = np.array([1.1, 2.1, 3.1])

newarr = arr.astype(int)

print(newarr)
print(newarr.dtype)

Voorbeeld

Wijzig gegevenstype van geheel getal in boolean:

import numpy as np

arr = np.array([1, 0, 3])

newarr = arr.astype(bool)

print(newarr)
print(newarr.dtype)

Test jezelf met oefeningen

Oefening:

NumPy gebruikt een teken om elk van de volgende gegevenstypen weer te geven, welke?

i = integer
 = boolean
 = unsigned integer
 = float
 = complex float
 = timedelta
 = datatime
 = object
 = string