Tweet Share Share

Last Updated on August 19, 2020

Rozwijanie modeli uczenia maszynowego w Pythonie często wymaga użycia tablic NumPy.

Tablice NumPy są wydajnymi strukturami danych do pracy z danymi w Pythonie, a modele uczenia maszynowego, takie jak te w bibliotece scikit-learn i modele głębokiego uczenia, takie jak te w bibliotece Keras, oczekują danych wejściowych w formacie tablic NumPy i dokonują przewidywań w formacie tablic NumPy.

Jako takie, powszechna jest potrzeba zapisania tablic NumPy do pliku.

Na przykład, możesz przygotować swoje dane z transformacjami takimi jak skalowanie i potrzebujesz zapisać je do pliku do późniejszego wykorzystania. Możesz również użyć modelu, aby dokonać przewidywań i potrzebujesz zapisać przewidywania do pliku do późniejszego wykorzystania.

W tym samouczku odkryjesz, jak zapisać tablice NumPy do pliku.

Po ukończeniu tego samouczka, będziesz wiedział:

  • Jak zapisać tablice NumPy do plików w formacie CSV.
  • Jak zapisać tablice NumPy do plików w formacie NPY.
  • Jak zapisać tablice NumPy do skompresowanych plików w formacie NPZ.

Zacznij swój projekt dzięki mojej nowej książce Machine Learning Mastery With Python, zawierającej samouczki krok po kroku oraz pliki z kodem źródłowym Pythona dla wszystkich przykładów.

Zacznijmy.

How to Save a NumPy Array to File for Machine Learning

How to Save a NumPy Array to File for Machine Learning
Photo by Chris Combe, some rights reserved.

Przegląd samouczka

Tutorial ten podzielony jest na trzy części; są to:

  1. Zapisywanie tablicy NumPy do pliku .CSV (ASCII)
  2. Zapisanie tablicy NumPy do pliku .NPY (binarny)
  3. Zapisanie tablicy NumPy do pliku .NPZ (skompresowany)

Zapisanie tablicy NumPy do pliku .CSV File (ASCII)

Najpopularniejszym formatem pliku do przechowywania danych numerycznych w plikach jest format zmiennych rozdzielanych przecinkami, w skrócie CSV.

Najprawdopodobniej Twoje dane treningowe i dane wejściowe do modeli są przechowywane w plikach CSV.

Może być wygodne zapisywanie danych do plików CSV, takich jak przewidywania modelu.

Możesz zapisać swoje tablice NumPy do plików CSV używając funkcji savetxt(). Funkcja ta przyjmuje nazwę pliku i tablicę jako argumenty i zapisuje tablicę w formacie CSV.

Musisz również określić delimiter; jest to znak używany do oddzielenia każdej zmiennej w pliku, najczęściej przecinek. To może być ustawione przez argument „delimiter”.

1.1 Przykład zapisu tablicy NumPy do pliku CSV

Poniższy przykład demonstruje jak zapisać pojedynczą tablicę NumPy do formatu CSV.

1
2
3
4
5
6
7

# save 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=’,’)

Wykonanie przykładu spowoduje zdefiniowanie tablicy NumPy i zapisanie jej do pliku 'data.csv’.

Tablica ma jeden wiersz danych z 10 kolumnami. Oczekiwalibyśmy, że te dane zostaną zapisane do pliku CSV jako pojedynczy wiersz danych.

Po uruchomieniu przykładu możemy sprawdzić zawartość 'data.csv’.

Powinniśmy zobaczyć co następuje:

1
0.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00,4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00,7.00000000000000000000e+00,8.00000000000000000000e+00,9.00000000000000000000e+00

Widzimy, że dane są poprawnie zapisane jako pojedynczy wiersz, a liczby zmiennoprzecinkowe w tablicy zostały zapisane z pełną precyzją.

1.2 Przykład załadowania tablicy NumPy z pliku CSV

Możemy załadować te dane później jako tablicę NumPy używając funkcji loadtext() i podając nazwę pliku i ten sam delimiter przecinka.

Pełny przykład jest wymieniony poniżej.

1
2
3
4
5
6

# load numpy array from csv file
from numpy import loadtxt
# load array
data = loadtxt(’data.csv’, delimiter=’,’)
# print the array
print(data)

Running the example loads the data from the CSV file and prints the contents, matching our single row with 10 columns defined in the previous example.

1

Zapisz tablicę NumPy do pliku .NPY File (binary)

Czasami mamy dużo danych w tablicach NumPy, które chcemy efektywnie zapisać, ale których potrzebujemy tylko do użycia w innym programie Pythona.

W związku z tym, możemy zapisać tablice NumPy do natywnego formatu binarnego, który jest wydajny zarówno do zapisania, jak i załadowania.

Jest to powszechne dla danych wejściowych, które zostały przygotowane, takie jak przekształcone dane, które będą musiały być używane jako podstawa do testowania szeregu modeli uczenia maszynowego w przyszłości lub uruchomienia wielu eksperymentów.

Format pliku .npy jest odpowiedni dla tego przypadku użycia i jest określany jako po prostu „format NumPy”.

Można to osiągnąć używając funkcji save() NumPy i określając nazwę pliku i tablicę, która ma być zapisana.

2.1 Przykład zapisu tablicy NumPy do pliku NPY

Przykład poniżej definiuje naszą dwuwymiarową tablicę NumPy i zapisuje ją do pliku .npy.

1
2
3
4
5
6
7

# save numpy array as npy file
from numpy import asarray
from numpy import save
# define data
data = asarray(])
# save to npy file
save(’data.npy’, data)

Po uruchomieniu przykładu w katalogu pojawi się nowy plik o nazwie 'data.npy’.

Nie możesz sprawdzić zawartości tego pliku bezpośrednio za pomocą edytora tekstu, ponieważ jest on w formacie binarnym.

2.2 Przykład ładowania tablicy NumPy z pliku NPY

Możesz załadować ten plik jako tablicę NumPy później używając funkcji load().

Pełny przykład jest podany poniżej.

1
2
3
4
5
6

# load numpy array from npy file
from numpy import load
# load array
data = load(’data.npy’)
# print the array
print(data)

Wykonanie przykładu spowoduje załadowanie pliku i wydrukowanie jego zawartości, potwierdzając, że zarówno został on załadowany poprawnie, jak i jego zawartość odpowiada temu, czego oczekujemy w tym samym dwuwymiarowym formacie.

1
]

Zapisz tablicę NumPy do pliku .NPZ File (compressed)

Czasami przygotowujemy dane do modelowania, które muszą być ponownie użyte w wielu eksperymentach, ale dane są duże.

Mogą to być wstępnie przetworzone tablice NumPy jak korpus tekstu (liczby całkowite) lub zbiór przeskalowanych danych obrazu (piksele). W tych przypadkach pożądane jest zarówno zapisanie danych do pliku, ale także w skompresowanym formacie.

To pozwala gigabajty danych zredukować do setek megabajtów i pozwala na łatwe przesyłanie do innych serwerów chmury obliczeniowej dla długich przebiegów algorytmów.

Format pliku .npz jest odpowiedni dla tego przypadku i obsługuje skompresowaną wersję natywnego formatu plików NumPy.

Funkcja savez_compressed() NumPy pozwala na zapisanie wielu tablic NumPy do pojedynczego skompresowanego pliku .npz.

3.1 Przykład zapisu tablicy NumPy do pliku NPZ

Możemy użyć tej funkcji do zapisania naszej pojedynczej tablicy NumPy do skompresowanego pliku.

Pełny przykład jest podany poniżej.

1
2
3
4
5
6
7

# save numpy array as npz file
from numpy import asarray
from numpy import savez_compressed
# define data
data = asarray(])
# save to npy file
savez_compressed(’data.npz’, data)

Wykonanie przykładu definiuje tablicę i zapisuje ją do pliku w skompresowanym formacie numpy o nazwie 'data.npz’.

Tak jak w przypadku formatu .npy, nie możemy sprawdzić zawartości zapisanego pliku za pomocą edytora tekstowego, ponieważ format pliku jest binarny.

3.2 Przykład ładowania tablicy NumPy z pliku NPZ

Możemy załadować ten plik później używając tej samej funkcji load() z poprzedniej sekcji.

W tym przypadku, funkcja savez_compressed() obsługuje zapisywanie wielu tablic do pojedynczego pliku. Dlatego funkcja load() może wczytać wiele tablic.

Wczytane tablice są zwracane z funkcji load() w postaci dict o nazwach 'arr_0′ dla pierwszej tablicy, 'arr_1′ dla drugiej, i tak dalej.

Pełny przykład wczytania naszej pojedynczej tablicy jest podany poniżej.

1
2
3
4
5
6
7
8

# load numpy array from npz file
from numpy import load
# load dict of arrays
dict_data = load(’data.npz’)
# extract the first array
data = dict_data
# print the array
print(data)

Uruchomienie przykładu powoduje załadowanie skompresowanego pliku numpy zawierającego słownik tablic, następnie wyodrębnia pierwszą tablicę, którą zapisaliśmy (zapisaliśmy tylko jedną), po czym wypisuje jej zawartość, potwierdzając, że wartości i kształt tablicy odpowiadają temu, co zapisaliśmy na początku.

1
]

Dalsza lektura

Ta sekcja zawiera więcej zasobów na ten temat, jeśli chcesz zagłębić się w temat.

Posts

  • How To Load Machine Learning Data in Python
  • A Gentle Introduction to NumPy Arrays in Python
  • How to Index, Slice and Reshape NumPy Arrays for Machine Learning

APIs

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

Podsumowanie

W tym tutorialu dowiedziałeś się jak zapisać tablice NumPy do pliku.

W szczególności, dowiedziałeś się:

  • Jak zapisać tablice NumPy do plików w formacie CSV.
  • Jak zapisać tablice NumPy do plików w formacie NPY.
  • Jak zapisać tablice NumPy do skompresowanych plików w formacie NPZ.

Czy masz jakieś pytania?
Pytania zadawaj w komentarzach poniżej, a ja postaram się odpowiedzieć.

Odkryj szybkie uczenie maszynowe w Pythonie!

Master Machine Learning With Python

Develop Your Own Models in Minutes

…z zaledwie kilkoma liniami kodu scikit-learn

Dowiedz się jak w moim nowym Ebooku:
Machine Learning Mastery With Python

Obejmuje samouczki i projekty end-to-end takie jak:
Wczytywanie danych, wizualizacja, modelowanie, dostrajanie i wiele więcej…

Finally Bring Machine Learning To
Your Own Projects

Skip the Academics. Just Results.

Zobacz, co jest w środku

Tweet Share Share

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.