NumPy datové typy
Datové typy v Pythonu
Ve výchozím nastavení má Python tyto datové typy:
strings
- používá se k reprezentaci textových dat, text je uveden v uvozovkách. např. "ABCD"integer
- používá se k reprezentaci celých čísel. např. -1, -2, -3float
- používá se k reprezentaci reálných čísel. např. 1,2, 42,42boolean
- používá se k reprezentaci True nebo False.complex
- používá se k reprezentaci komplexních čísel. např. 1,0 + 2,0j, 1,5 + 2,5j
Datové typy v NumPy
NumPy má některé další datové typy a odkazuje na datové typy s jedním znakem, jako i
pro celá čísla, u
pro celá čísla bez znaménka atd.
Níže je uveden seznam všech datových typů v NumPy a znaků používaných k jejich reprezentaci.
i
- celé číslob
- booleovskýu
- celé číslo bez znaménkaf
- plovákc
- komplexní plovákm
- časová deltaM
- čas schůzkyO
- předmětS
- tětivaU
- řetězec unicodeV
- opravena část paměti pro jiný typ (neplatná)
Kontrola datového typu pole
Objekt pole NumPy má vlastnost nazvanou dtype
, která vrací datový typ pole:
Příklad
Získejte datový typ objektu pole:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr.dtype)
Příklad
Získejte datový typ pole obsahujícího řetězce:
import numpy as np
arr = np.array(['apple',
'banana', 'cherry'])
print(arr.dtype)
Vytváření polí s definovaným typem dat
Funkci používáme array()
k vytváření polí, tato funkce může mít volitelný argument: dtype
to nám umožňuje definovat očekávaný datový typ prvků pole:
Příklad
Vytvořte pole s řetězcem datového typu:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='S')
print(arr)
print(arr.dtype)
Pro i
, u
, f
,
S
a U
můžeme definovat i velikost.
Příklad
Vytvořte pole s datovým typem 4 bajty celé číslo:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='i4')
print(arr)
print(arr.dtype)
Co když hodnotu nelze převést?
Pokud je zadán typ, ve kterém prvky nelze přetypovat, NumPy vyvolá hodnotu ValueError.
ValueError: V Pythonu je vyvolána hodnota ValueError, když je typ předávaného argumentu funkci neočekávaný/nesprávný.
Příklad
Neceločíselný řetězec jako „a“ nelze převést na celé číslo (vyvolá chybu):
import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')
Převod datového typu na existujících polích
Nejlepší způsob, jak změnit datový typ existujícího pole, je vytvořit kopii pole pomocí astype()
metody.
Funkce astype()
vytvoří kopii pole a umožňuje zadat datový typ jako parametr.
Datový typ lze zadat pomocí řetězce, jako 'f'
pro float,
'i'
pro celé číslo atd. nebo můžete použít datový typ přímo jako
float
pro float a int
pro celé číslo.
Příklad
Změňte datový typ z float na celé číslo pomocí 'i'
hodnoty parametru:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype('i')
print(newarr)
print(newarr.dtype)
Příklad
Změňte datový typ z float na celé číslo pomocí int
hodnoty parametru:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype(int)
print(newarr)
print(newarr.dtype)
Příklad
Změňte datový typ z celého čísla na booleovský:
import numpy as np
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)