Numpy Genfromtxt

Numpy Genfromtxt

Szczególnie lubiany i szeroko stosowany pakiet Python jest Numpy. Oferuje kilka funkcji, aby przekształcić dane tabelaryczne w tablicę. Jednym z nich jest Numpy.funkcja genfromtext (). Jedna z wielu funkcji dostarczonych przez bibliotekę Python Numpy, która odbiera dane tabelaryczne, generuje je w tablicy danych, a tekst wyjściowy nazywa. W tym poście przejdziemy do użytku Python Numpy.funkcja genfromtxt () do ładowania danych z pliku tekstowego. W całym samouczku zademonstrujemy zastosowanie Numpy GenFromtxt i metody genfromtext ().

Definicja funkcji genFromtxt ()

Plik tekstowy może ładować dane do programu za pomocą funkcji genfromtxt (). Aby wyczyścić zawartość w pliku tekstowym, wymagane są wiele wartości argumentów. Dzięki zastosowaniu filtrowania, usuwania i wymiany operacji może również poradzić sobie z brakującymi lub zerowymi wartościami.

Istnieją dwie pętle w Numpy GenFromtxt. Każda linia pliku jest konwertowana na sekwencję ciągu za pomocą pojedynczej pętli. Druga pętla następnie zmienia każdy ciąg na właściwy danych. W rezultacie takie podejście jest wolniejsze i nie tak wydajne jak pojedyncza pętla. Metoda genfromtxt jest odpowiedzialna za wypełnienie wszelkich luk w danych, jeśli brakuje jakichkolwiek wartości.

Składnia funkcji genfromtxt ()

Dołączyliśmy następującą składnię funkcji genfromtxt ():


Funkcja genfromtxt () akceptuje szeroki zakres argumentów. Ale skoncentrujemy się na najbardziej typowych:

Nazwa parametru

Opis

Fname Nazwa pliku, która zostanie odczytana, jest wskazana jako fname.
Dtype To wyświetla typ danych wynikającej z tablicy. Domyślną wartością Dtype to „float."
uwagi Ta opcja opisuje każdą linię informacji.
delimiter = brak Wartość wykorzystywana do podziału wartości to ta.
skip_header = 0 Ta wartość instruuje plik, aby pominął wiersze zaczynające się na początku.
skip_footer = 0 Dzięki tej opcji dolne rzędy pliku należy pominąć.
konwertery = brak Ta wartość informuje Lambda Funkcje lub zmienne, jak przekonwertować dane kolumny na wartości.
missing_values ​​= brak Ten to wartość ciągów używana do wypełnienia dla brakujących wartości.

Porozmawiajmy o różnych przykładach Numpy GenFromtxt, aby dowiedzieć się więcej o tym, jak działa ta ważna funkcja.

Przykład 1

Zacznijmy od łatwego przykładu. Aby utworzyć tablicę wyjściową za pomocą funkcji GenFromtxt, najpierw wywołaliśmy biblioteki „Numpy” i „IO”. Ponieważ użyliśmy Unicode ciągu w danych, dane są ręcznie dostarczane w formacie ciągów, a następnie przesyłane metodą GenFromTX. Tutaj widać, że przecinki są stosowane jako ograniczniki, ponieważ można je wykorzystać do rozróżnienia wartości. Wyniki tablicy funkcji GenFromtxt zawiera utworzoną tablicę wyjściową. Spróbuj zrozumieć następujący kod:

Importuj Numpy
z IO Import Stringio
Wartości = u "11, 22, 33 \ n111, 222, 333 \ n55,101,112"
data_val = Numpy.genFromtxt (Stringio (wartości), delimiter = ”,”)
print (data_val)



Format wejściowy można określić jako generator, lista ciągów, ciąg, otwórz plik obiektu z funkcją odczytu lub ciągiem. Funkcja GenFromtxt zakłada i wyświetla tablicę wyjściową w zależności od typu wejściowego. Zobacz następujące dane wyjściowe:


Zanotuj, że metoda genfromtxt interpretuje pojedynczy ciąg jako nazwę pliku, niezależnie od tego, czy znajduje się ona lokalnie, czy zdalnie. Metoda genfromtxt może również odbierać lokalizację adresu URL, która pobranie i otworzy plik z tego, który dostarczył adres URL.

Przykład 2

W tym przykładzie zobaczymy, jak korzystać z opcji ogranicznika. Ta opcja jest tutaj używana do podziału danych dla naszej tablicy wyjściowej w zależności od szerokości wartości podanych w pliku wejściowym.

Ponieważ nie użyliśmy przecinka ani innego znaku do oddzielenia dwóch danych wejściowych o nazwie „wartości Nasza zamierzona tablica wyjściowa.

Ponieważ dwa wejścia miały różne szerokości wartości na jednym wierszu, podzieliliśmy kolumny na trzy grupy wartości, używając ogranicznika liczb całkowitych 3. Gdy wartości w naszym pliku wejściowym mają taką samą szerokość, możemy wykorzystać tę metodę. Jeśli wartości w pliku nie są taką samą szerokością, możemy użyć sekwencji wartości liczb całkowitych jako ograniczenia do podziału wartości, tak jak to zrobiliśmy w wejściu „wartości_input2”. Zastosowaliśmy ogranicznik sekwencji 4, 3 i 2.

importować Numpy jako NP
z IO Import Stringio
wartości1 = u "2 2 6 \ n 4 2 66 \ n453203 3”
wartości_input1 = np.genFromtxt (stringio (wartości1), delimiter = 3)
print (wartości_input1)
wartości2 = u "665636143 \ n 3 5 7 \ n 6532 9”
wartości_input2 = np.genFromtxt (Stringio (wartości2), delimiter = (4, 3, 2))
print (wartości_input2)



Oto następujące dane wyjściowe:

Przykład 3

W tym przykładzie porozmawiamy o parametrze autostrypu funkcji genfromtxt (). Ta opcja służy do automatycznego usuwania białych przestrzeni między wartościami w naszym pliku danych.

Jeśli użyjesz jednego ogranicznika, linia rozkłada się na ciąg znaków, w tym dowolną dostępną białe oznaczenie. Jeśli jednak zdamy „autoStrip = true” jako parametr, zamiast tego otrzymamy ciąg pustych znaków.

Na poniższym zrzucie ekranu widać, że najpierw zaimportowaliśmy moduły i stworzyliśmy nasze dane w zmiennej o nazwie „Wartości”. Następnie użyliśmy funkcji GenFromtxt. Tutaj nie wykorzystujemy funkcji „autostrip”. Będziemy używać tej opcji w nadchodzącej sekcji. Uruchom poniższy kod, a następnie sprawdź wyniki. Tutaj nie użyliśmy funkcji autostrip.

Importuj Numpy
z IO Import Stringio
Wartości = u "2, xyz, 4 \ n 5, nnn, 2"
Drukuj (Numpy.genFromtxt (stringio (wartości), delimiter = ",", dtype = "| u5")))



Poniżej znajduje się wynik, w którym można zobaczyć przestrzenie między danymi:


Na poniższym ekranie widać, że reszta kodu jest taka sama jak powyżej, z wyjątkiem dodania opcji „AutoStrip” na końcu ostatniego wiersza kodu.

Importuj Numpy
z IO Import Stringio
Wartości = u "2, xyz, 4 \ n 5, nnn, 2"
Drukuj (Numpy.genFromtxt (stringio (wartości), delimiter = ",", dtype = "| u5", autoStrip = true)))



Oto wynik. Możesz dopasować to wyjście do poprzedniego wyjścia i zobaczyć różnicę utworzoną za pomocą opcji „AutoStrip”.

Przykład 4

Powiedzmy, że chcesz wyeliminować materiał z ciągów zawierających komentarze lub niektórych symboli. Możesz to osiągnąć, przekazując parametry komentarzy do metody genfromtxt (). Uruchom następujący kod:

Importuj Numpy
z IO Import Stringio
wartości = u ""#
# Ignoruj !
# Ignoruj ​​to również!
11, 1
31, 5
12, 9
15, 13
# To jest ostatni wiersz kodu!
6, 3
„” ”
Drukuj (Numpy.genFromtxt (stringio (wartości), komentarze = "#", delimiter = ","))



Oto wyjście, w którym widać, że komentarze wymienione w poprzednim kodzie są ignorowane.

Wniosek

Aby dokładnie zrozumieć funkcję Numpy GenFromtxt i jej działanie, szczegółowo przyjrzeliśmy się kilku przykładom w tym poście. Widzieliśmy przykłady korzystania z funkcji genfromtxt do odczytu plików danych wejściowych z różnymi typami danych i jak korzystać z różnych opcji i podejść do ograniczenia. Możesz odwołać się do tej informacji, jeśli jesteś nowy w tej koncepcji. Ten artykuł zawiera wszystkie kluczowe szczegóły dotyczące funkcji GenFromtxt i jej użycia.