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, -3
  • float- používá se k reprezentaci reálných čísel. např. 1,2, 42,42
  • boolean - 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 ipro celá čísla, upro 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é číslo
  • b - booleovský
  • u - celé číslo bez znaménka
  • f - plovák
  • c - komplexní plovák
  • m - časová delta
  • M - čas schůzky
  • O - předmět
  • S - tětiva
  • U- řetězec unicode
  • V- 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, Sa Umůž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 floatpro float a intpro 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í inthodnoty 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)

Otestujte se pomocí cvičení

Cvičení:

NumPy používá znak k reprezentaci každého z následujících datových typů, který z nich?

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