Tweet Sdílet Sdílet

Poslední aktualizace 19. srpna 2020

Vývoj modelů strojového učení v jazyce Python často vyžaduje použití polí NumPy.

Moleje NumPy jsou efektivní datové struktury pro práci s daty v jazyce Python a modely strojového učení, jako jsou ty v knihovně scikit-learn, a modely hlubokého učení, jako jsou ty v knihovně Keras, očekávají vstupní data ve formátu polí NumPy a provádějí předpovědi ve formátu polí NumPy.

Proto je běžné, že je třeba ukládat pole NumPy do souboru.

Můžete například připravit data pomocí transformací, jako je škálování, a potřebujete je uložit do souboru pro pozdější použití. Můžete také použít model k vytváření předpovědí a potřebujete předpovědi uložit do souboru pro pozdější použití.

V tomto kurzu zjistíte, jak uložit pole NumPy do souboru.

Po dokončení tohoto tutoriálu budete vědět:

  • Jak uložit pole NumPy do souborů ve formátu CSV.
  • Jak uložit pole NumPy do souborů ve formátu NPY.
  • Jak uložit pole NumPy do komprimovaných souborů ve formátu NPZ.

Nastartujte svůj projekt s mou novou knihou Machine Learning Mastery With Python, která obsahuje návody krok za krokem a zdrojové soubory Pythonu pro všechny příklady.

Začněme.

Jak uložit pole NumPy do souboru pro strojové učení

Jak uložit pole NumPy do souboru pro strojové učení
Foto: Chris Combe, některá práva vyhrazena.

Přehled návodu

Tento návod je rozdělen do tří částí; jsou to:

  1. Uložení pole NumPy do .CSV (ASCII)
  2. Uložení pole NumPy do souboru .NPY (binární)
  3. Uložení pole NumPy do souboru .NPZ (komprimovaný)

Uložení pole NumPy do .CSV File (ASCII)

Nejběžnějším formátem pro ukládání číselných dat do souborů je formát proměnných oddělených čárkou, zkráceně CSV.

Je pravděpodobné, že vaše tréninková data a vstupní data pro vaše modely jsou uložena v souborech CSV.

Může být výhodné ukládat data do souborů CSV, například předpovědi z modelu.

Můžete ukládat svá pole NumPy do souborů CSV pomocí funkce savetxt(). Tato funkce přijímá jako argumenty název souboru a pole a ukládá pole do formátu CSV.

Musíte také zadat oddělovač; to je znak použitý k oddělení jednotlivých proměnných v souboru, nejčastěji čárka. Ten lze nastavit pomocí argumentu „delimiter“.

1.1 Příklad uložení pole NumPy do souboru CSV

Následující příklad ukazuje, jak uložit jedno pole NumPy do formátu CSV.

1
2
3
4
5
6
7

# uložit numpy array as csv file
from numpy import asarray
from numpy import savetxt
# define data
data = asarray(])
# save to csv file
savetxt(‚data.csv‘, data, delimiter=‘,‘)

Spuštěním příkladu se definuje pole NumPy a uloží se do souboru ‚data.csv‘.

Pole má jeden řádek dat s 10 sloupci. Očekávali bychom, že tato data budou uložena do souboru CSV jako jeden řádek dat.

Po spuštění příkladu můžeme zkontrolovat obsah souboru ‚data.csv‘.

Měli bychom vidět následující:

1
0. V tomto případě bychom se měli podívat na následující tabulku.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00,4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00,7.00000000000000000000e+00,8.000000000000000000000000e+00,9.000000000000000000000000e+00

Vidíme, že data jsou správně uložena jako jeden řádek a že čísla s plovoucí řádovou čárkou v poli byla uložena s plnou přesností.

1.2 Příklad načtení pole NumPy ze souboru CSV

Tato data můžeme později načíst jako pole NumPy pomocí funkce loadtext() a zadat název souboru a stejný oddělovač čárkou.

Kompletní příklad je uveden níže.

1
2
3
4
5
6

# load numpy array from csv file
from numpy import loadtxt
# load array
data = loadtxt(‚data.csv‘, delimiter=‘,‘)
# vytiskněte pole
print(data)

Spuštění příkladu načte data ze souboru CSV a vypíše obsah, který odpovídá našemu jedinému řádku s 10 sloupci definovanému v předchozím příkladu.

1

Uložení pole NumPy do .NPY souboru (binární)

Někdy máme v NumPy polích mnoho dat, která chceme efektivně uložit, ale která potřebujeme použít pouze v jiném programu v Pythonu.

Můžeme proto pole NumPy uložit do nativního binárního formátu, který je efektivní jak pro ukládání, tak pro načítání.

Toto je běžné u připravených vstupních dat, například transformovaných dat, která bude třeba v budoucnu použít jako základ pro testování řady modelů strojového učení nebo pro provádění mnoha experimentů.

Soubor .npy je pro tento případ použití vhodný a označuje se jednoduše jako „formát NumPy“.

Toho lze dosáhnout pomocí funkce save() NumPy a zadáním názvu souboru a pole, které se má uložit.

2.1 Příklad uložení pole NumPy do souboru NPY

Následující příklad definuje naše dvourozměrné pole NumPy a uloží ho do souboru .npy.

1
2
3
4
5
6
7

# uložit numpy pole jako npy soubor
from numpy import asarray
from numpy import save
# define data
data = asarray(])
# uložit do npy souboru
save(‚data.npy‘, data)

Po spuštění příkladu uvidíte v adresáři nový soubor s názvem ‚data.npy‘.

Obsah tohoto souboru nemůžete přímo prohlédnout pomocí textového editoru, protože je v binárním formátu.

2.2 Příklad načtení pole NumPy ze souboru NPY

Tento soubor můžete později načíst jako pole NumPy pomocí funkce load().

Kompletní příklad je uveden níže.

1
2
3
4
5
6

# load numpy array from npy file
from numpy import load
# load array
data = load(‚data.npy‘)
# vypište pole
print(data)

Spuštěním příkladu se soubor načte a vypíše se jeho obsah, čímž se potvrdí, že byl načten správně a že obsah odpovídá tomu, co očekáváme ve stejném dvourozměrném formátu.

1
]

Uložení pole NumPy do .NPZ File (compressed)

Někdy připravujeme data pro modelování, která je třeba opakovaně použít ve více experimentech, ale data jsou velká.

Může jít o předzpracovaná NumPy pole, jako je korpus textu (celá čísla) nebo kolekce přeškálovaných obrazových dat (pixely). V těchto případech je žádoucí jednak uložit data do souboru, ale také v komprimovaném formátu.

To umožňuje zmenšit gigabajty dat na stovky megabajtů a umožňuje snadný přenos na další servery cloud computingu pro dlouhé běhy algoritmů.

Pro tento případ je vhodný formát souboru .npz, který podporuje komprimovanou verzi nativního formátu souboru NumPy.

Funkce savez_compressed() NumPy umožňuje uložit více polí NumPy do jediného komprimovaného souboru .npz.

3.1 Příklad uložení pole NumPy do souboru NPZ

Pomocí této funkce můžeme uložit naše jediné pole NumPy do komprimovaného souboru.

Kompletní příklad je uveden níže.

1
2
3
4
5
6
7

# uložit numpy pole jako npz soubor
from numpy import asarray
from numpy import savez_compressed
# define data
data = asarray(])
# savez_compressed(‚data.npz‘, data)

Příklad definuje pole a uloží ho do souboru v komprimovaném formátu numpy s názvem ‚data.npz‘.

Stejně jako u formátu .npy nemůžeme obsah uloženého souboru kontrolovat textovým editorem, protože formát souboru je binární.

3.2 Příklad načtení pole NumPy ze souboru NPZ

Tento soubor můžeme později načíst pomocí stejné funkce load() z předchozí části.

V tomto případě funkce savez_compressed() podporuje uložení více polí do jednoho souboru. Proto může funkce load() načíst více polí.

Nahraná pole jsou z funkce load() vrácena v dict s názvy ‚arr_0‘ pro první pole, ‚arr_1‘ pro druhé atd.

Kompletní příklad načtení našeho jediného pole je uveden níže.

1
2
3
4
5
6
7
8

# načtení numpy pole z npz souboru
from numpy import load
# načtení dict pole
dict_data = load(‚data.npz‘)
# extrahujeme první pole
data = dict_data
# vypíšeme pole
print(data)

Příklad načte komprimovaný soubor numpy, který obsahuje slovník polí, pak vytáhne první pole, které jsme uložili (uložili jsme pouze jedno), pak vypíše jeho obsah a potvrdí, že hodnoty a tvar pole odpovídají tomu, co jsme uložili na prvním místě.

1
]

Další četba

Tato část poskytuje další zdroje k tématu, pokud chcete jít hlouběji.

Příspěvky

  • Jak načíst data pro strojové učení v Pythonu
  • Šetrný úvod do polí NumPy v Pythonu
  • Jak indexovat, krájet a přetvářet pole NumPy pro strojové učení

API

  • numpy.savetxt API
  • numpy.save API
  • numpy.savez API
  • numpy.savez_compressed API
  • numpy.load API
  • numpy.loadtxt API

Shrnutí

V tomto návodu jste zjistili, jak uložit pole NumPy do souboru.

Konkrétně jste se dozvěděli:

  • Jak uložit pole NumPy do souborů ve formátu CSV.
  • Jak uložit pole NumPy do souborů ve formátu NPY.
  • Jak uložit NumPy pole do komprimovaných souborů ve formátu NPZ.

Máte nějaké dotazy?
Pokládejte své dotazy v komentářích níže a já se budu snažit odpovědět.

Objevte rychlé strojové učení v Pythonu!

Master Machine Learning With Python

Vyvíjejte vlastní modely během několika minut

…s pouhými několika řádky kódu scikit-learn

Naučte se, jak na to, v mé nové elektronické knize:
Machine Learning Mastery With Python

Pokrývá samostudijní tutoriály a komplexní projekty jako:
Načítání dat, vizualizace, modelování, ladění a mnoho dalšího….

Konečně přeneste strojové učení do
vlastních projektů

Vynechejte akademickou půdu. Stačí výsledky.

Podívejte se, co je uvnitř

Tweet Sdílet Sdílet

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.