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, -3float
- gebruikt om reële getallen weer te geven. bijv. 1.2, 42.42boolean
- 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 i
voor gehele getallen, u
voor 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 getalb
- booleaansu
- geheel getal zonder tekenf
- vlotc
- complexe floatm
- tijddeltaM
- datum TijdO
- objectS
- snaarU
- Unicode-tekenreeksV
- 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
,
S
en U
we 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
float
voor float en int
voor 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 int
als 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)