Import a export dát
📥Úvod
Táto kapitola ukazuje najpoužívanejšie spôsoby, ako v NumPy načítať a ukladať dáta do textových a CSV súborov. Nájdete tu prehľad funkcií, praktické príklady a tipy pre bežné použitie
🧰 Rýchly prehľad funkcií
| Úloha | Funkcia | Kedy použiť |
|---|---|---|
| Načítať „čisté“ numerické dáta | np.loadtxt |
Rýchle a jednoduché CSV/TXT bez chýbajúcich hodnôt |
| Načítať „špinavé“ dáta s chýbajúcimi hodnotami | np.genfromtxt |
Lepšia tolerancia voči NaN, prázdnym poliam, vlastným konverziám |
| Uložiť do TXT/CSV | np.savetxt |
Jednoduchý export s formátovaním |
| (Mimo text/CSV) Binárne .npy/.npz | np.save, np.savez |
Najrýchlejšie a bezstratové ukladanie pre NumPy matice |
❗ Na zložitejšie textové a CSV súbory s hlavičkami, typmi stĺpcov či zmiešanými typmi je vhodné použiť knižnicu pandas (
read_csv,to_csv), ktorej sa budú venovať ďalšie kapitoly.
📤 Export: np.savetxt
Jednoduché TXT/CSV bez hlavičky
TXT/CSV s hlavičkou
Kód
Uložené do data_s_hlavickou.csv s hlavičkou.
[[ 1. 0. 10. ]
[ 2. 0.25 12.5 ]
[ 3. 0.5 15. ]
[ 4. 0.75 17.5 ]
[ 5. 1. 20. ]]
📥 Import: np.loadtxt
Základné načítanie TXT/CSV (oddelené čiarkou)
Kód
Načítaná matica z data.csv
[[ 0. 1. 2.]
[ 3. 4. 5.]
[ 6. 7. 8.]
[ 9. 10. 11.]]
Kód
Načítané (skiprows=1):
[[ 1. 0. 10. ]
[ 2. 0.25 12.5 ]
[ 3. 0.5 15. ]
[ 4. 0.75 17.5 ]
[ 5. 1. 20. ]]
💡 Je dôležíté preskočiť prvý riadok v ktorom sa nachádza uložená hlavička. V opačnom prípade dôjde k rozdielu dátových typov a súbor sa nepodarí načítať.
Výber konkrétnych stĺpcov a zmena typu
Kód
Vybrané stĺpce (poradove_cislo, a):
[[1. 0. ]
[2. 0.25]
[3. 0.5 ]
[4. 0.75]
[5. 1. ]]
⚠️ Bežné úskalia a tipy
- Hlavičky:
np.loadtxtnečíta názvy stĺpcov, použite parameterskiprows=....np.genfromtxtsnames=Truevie mená načítať a vytvoriť „structured array“.
- Chýbajúce hodnoty:
- Použite
np.genfromtxtsmissing_valuesafilling_values. np.loadtxtpri prázdnom poli zlyhá.
- Použite
- Formát čísel a oddeľovač:
- CSV v rôznych lokalizáciách môže používať
;a desatinnú čiarku. - Rieš cez
delimiter=";"aconverters={...}(viď príklady).
- CSV v rôznych lokalizáciách môže používať
- Rýchlosť a veľké dáta:
- TXT/CSV je pomalší a stratový pre presnosť formátu.
- Pre rýchlosť a bezstratovosť používajte binárne formáty:
np.save/np.load(.npy),np.savez(.npz).
- Zmiešané typy (text + čísla):
- Uvažujte
np.genfromtxt(..., dtype=None, encoding="utf-8")alebo vytvorte structured array sdtype=[(...)]. - Pri zložitejších CSV je často pohodlnejší pandas (
pd.read_csv,df.to_csv).
- Uvažujte
📦 Rýchle binárne uloženie (odporúčané pre NumPy polia)
Jedno pole
Viac polí
Kód
Kľúče v .npz: ['X', 'Y']
X: [0 1 2 3 4] Y: [0. 0.25 0.5 0.75 1. ]
🧠 Zhrnutie
- Čisté numerické CSV →
np.loadtxt
- Neúplné/špinavé CSV →
np.genfromtxt
- Export do textu/CSV →
np.savetxt
- Výkon a presnosť →
np.save/np.savez
📚 Oficiálna dokumentácia NumPy
Podrobný popis funkcií, ich parametrov a príkladov použitia nájdete v oficiálnej dokumentácii knižnice NumPy na adrese: https://numpy.org/doc/stable/.