Fajne biblioteki Pythona dla inżynierii danych i NLP
Od pięciu lat intensywnie używam Pythona. W rezultacie zawsze poszukuję niesamowitych bibliotek, które mogą usprawnić moją pracę w projektach Data Engineering i Business Intelligence. W przeszłości udostępniłem dwa artykuły: „Pięć fajnych bibliotek Pythona do nauki o danych” i „Sześć fajnych bibliotek Pythona, na które ostatnio natknąłem się”.
W tym artykule udostępniam kolejnych sześć niesamowitych bibliotek Pythona, których używam obecnie w mojej pracy.
1. Humanizuj
Humanize” zapewnia proste, łatwe do odczytania formatowanie ciągów liczb, dat i godzin. Celem biblioteki jest pobieranie danych i uczynienie ich bardziej przyjaznymi dla człowieka, na przykład poprzez konwersję liczby sekund na bardziej czytelny ciąg znaków, np. „2 minuty temu”. Biblioteka może formatować dane na różne sposoby, w tym formatując liczby za pomocą przecinków, konwertując znaczniki czasu na czasy względne i nie tylko.
W moich projektach inżynierii danych często używam liczb całkowitych oraz daty i godziny.
Instalacja
!pip install humanize
Przykład (liczby całkowite)
# Importing library import humanize import datetime as dt # Formatting numbers with comma a = humanize.intcomma(951009) # converting numbers into words b = humanize.intword(10046328394) #printing print(a) print(b)
Wyjście
Przykład (data i godzina)
import humanize import datetime as dt a = humanize.naturaldate(dt.date(2012, 6, 5)) b = humanize.naturalday(dt.date(2012, 6, 5)) print(a) print(b)
Wyjście
Więcej opcji formatowania znajdziesz tutaj.
2. Wahadło
Chociaż w Pythonie dostępnych jest wiele bibliotek dla DateTime, uważam, że Pendulum jest łatwe w użyciu przy każdej operacji na datach. Wahadło to moja ulubiona biblioteka, z której korzystam na co dzień w pracy. Rozszerza wbudowany moduł datetime w Pythonie, dodając bardziej intuicyjne API do obsługi stref czasowych i wykonywania operacji na datach i godzinach, takich jak dodawanie przedziałów czasowych, odejmowanie dat i konwertowanie między strefami czasowymi. Zapewnia prosty, przyjazny dla człowieka interfejs API do formatowania dat i godzin.
Instalacja
!pip install pendulum
Przykład
# import library import pendulum dt = pendulum.datetime(2023, 1, 31) print(dt) #local() creates datetime instance with local timezone local = pendulum.local(2023, 1, 31) print("Local Time:", local) print("Local Time Zone:", local.timezone.name) # Printing UTC time utc = pendulum.now('UTC') print("Current UTC time:", utc) # Converting UTC timezone into Europe/Paris time europe = utc.in_timezone('Europe/Paris') print("Current time in Paris:", europe)
Wyjście
Muszę napisać osobny blog dla tej biblioteki, pokazując tutaj kilka przykładów. Więcej informacji na temat formatowania można znaleźć tutaj.
3. trochę
Czy spotkałeś się z sytuacją, w której język obcy występujący w danych nie pojawia się poprawnie? Nazywa się to Mojibake. Mojibake to termin używany do opisania zniekształconego lub pomieszanego tekstu, który pojawia się w wyniku problemów z kodowaniem lub dekodowaniem. Zwykle ma to miejsce, gdy tekst zapisany w jednym kodowaniu znaków jest nieprawidłowo dekodowany przy użyciu innego kodowania. Biblioteka ftfy Pythona pomoże Ci naprawić Mojibake, co jest bardzo przydatne w przypadkach użycia NLP.
Instalacja
!pip install ftfy
Przykład
print(ftfy.fix_text('Correct the sentence using “ftfyâ€\x9d.')) print(ftfy.fix_text('✔ No problems with text')) print(ftfy.fix_text('à perturber la réflexion'))
Wyjście
Oprócz Mojibake, ftfy naprawi nieprawidłowe kodowanie, nieprawidłowe zakończenia linii i nieprawidłowe cudzysłowy. Według dokumentacji ftfy rozumie tekst zdekodowany w dowolnym z następujących kodowań:
- Łacina-1 (ISO-8859–1)
- Windows-1252 (cp1252 — używany w produktach Microsoft)
- Windows-1251 (cp1251 — rosyjska wersja cp1252)
- Windows-1250 (cp1250 — wschodnioeuropejska wersja cp1252)
- ISO-8859–2 (co nie jest tym samym, co Windows-1250)
- MacRoman (używany w systemie Mac OS 9 i wcześniejszych wersjach)
- cp437 (używany w systemie MS-DOS i niektórych wersjach wiersza poleceń systemu Windows)
Więcej szczegółów znajdziesz w dokumentacji tutaj.
4. Szkic
Sketch to unikalny asystent pisania kodu AI, zaprojektowany specjalnie dla użytkowników pracujących z biblioteką pand w Pythonie. Wykorzystuje algorytmy uczenia maszynowego do zrozumienia kontekstu danych użytkownika i dostarcza odpowiednie sugestie dotyczące kodu, dzięki czemu zadania manipulacji i analizy danych są łatwiejsze i wydajniejsze. Sketch nie wymaga od użytkowników instalowania żadnych dodatkowych wtyczek w swoim IDE, dzięki czemu rozpoczęcie korzystania z niego jest szybkie i łatwe. Może to znacznie skrócić czas i wysiłek wymagany do wykonywania zadań związanych z danymi oraz pomóc użytkownikom w pisaniu lepszego i wydajniejszego kodu.
Instalacja
!pip install sketch
Przykład
Aby móc korzystać z tej biblioteki, musimy dodać rozszerzenie .sketch do ramki danych Pandy.
.sketch.ask
zapytaj to funkcja programu Sketch, która umożliwia użytkownikom zadawanie pytań dotyczących ich danych w formacie języka naturalnego. Zapewnia tekstową odpowiedź na zapytanie użytkownika.
# Importing libraries import sketch import pandas as pd # Reading the data (using twitter data as an example) df = pd.read_csv("tweets.csv") print(df)
# Asking which columns are category type df.sketch.ask("Which columns are category type?")
Wyjście
# To find the shape of the dataframe df.sketch.ask("What is the shape of the dataframe")
.sketch.howto
howto to funkcja udostępniająca blok kodu, którego można użyć jako punktu wyjścia lub zakończenia różnych zadań związanych z danymi. Możemy poprosić o fragmenty kodu w celu normalizacji danych, utworzenia nowych funkcji, wykreślenia danych, a nawet zbudowania modeli. Zaoszczędzi to czas i łatwo skopiuje i wklei kod; nie musisz pisać kodu ręcznie od zera.
# Asking to provide code snipped for visualising the emotions df.sketch.howto("Visualize the emotions")
Wyjście
.sketch.apply
Funkcja .apply pomaga generować nowe funkcje, analizować pola i wykonywać inne operacje na danych. Aby skorzystać z tej funkcji musimy posiadać konto OpenAI i używać klucza API do wykonywania zadań. Nie próbowałem tej funkcji.
Podobało mi się korzystanie z tej biblioteki, zwłaszcza funkcji jak to, i uważam ją za przydatną.
Więcej informacji o Sketch znajdziesz na Githubie.
5. pgeokod
„pgeocode” to doskonała biblioteka, na którą niedawno natknąłem się, która okazała się niezwykle przydatna w moich projektach analizy przestrzennej. Umożliwia na przykład znalezienie odległości między dwoma kodami pocztowymi i dostarcza informacji geograficznych, pobierając jako dane wejściowe kraj i kod pocztowy.
Instalacja
!pip install pgeocode
Przykład
Uzyskiwanie geoinformacji dla określonych kodów pocztowych
# Checking for country "India" nomi = pgeocode.Nominatim('In') # Getting geo information by passing the postcodes nomi.query_postal_code(["620018", "620017", "620012"])
wyjście
„pgeocode” oblicza odległość między dwoma kodami pocztowymi, przyjmując kraj i kody pocztowe jako dane wejściowe. Wynik podawany jest w kilometrach.
# Finding a distance between two postcodes distance = pgeocode.GeoDistance('In') distance.query_postal_code("620018", "620012")
Wyjście
Więcej informacji znajdziesz tutaj.
6. remb
rembg to kolejna przydatna biblioteka, która z łatwością usuwa tło z obrazów.
Instalacja
!pip install rembg
Przykład
# Importing libraries from rembg import remove import cv2 # path of input image (my file: image.jpeg) input_path = 'image.jpeg' # path for saving output image and saving as a output.jpeg output_path = 'output.jpeg' # Reading the input image input = cv2.imread(input_path) # Removing background output = remove(input) # Saving file cv2.imwrite(output_path, output)
Wyjście
Być może znasz już niektóre z tych bibliotek, ale dla mnie Sketch, Pendulum, pgeocode i ftfy są niezbędne w mojej pracy związanej z inżynierią danych. W swoich projektach bardzo na nich polegam.
Dziękuję za poświęcenie czasu na przeczytanie tego. Chętnie poznam Twoje przemyślenia i spostrzeżenia, dlatego nie wahaj się i zostaw komentarz. Jeśli masz coś do dodania, śmiało komentuj!
Połącz się ze mną na LinkedIn!
Mogą Ci się spodobać także moje poprzednie artykuły Pięć fajnych bibliotek Pythona do nauki o danych i Sześć fajnych bibliotek Pythona, na które ostatnio natknąłem się