Python biedt uitzonderlijke tooling voor Data Science. Gebruikt u momenteel de nieuwste en meest efficiënte tools in uw workflow?

Python heeft een reputatie opgebouwd vanwege zijn veelzijdigheid en vele tools, waardoor het de voorkeurstaal is voor datawetenschap. Veel bibliotheken hebben innovatie op dit gebied gestimuleerd. Om uw vaardigheden te verbeteren en nieuwe kansen te verkennen, is het belangrijk om op de hoogte te blijven van opkomende tools.

1. ConnectorX: het laden van gegevens vereenvoudigen

Hoewel de meeste gegevens zich in databases bevinden, vinden berekeningen er meestal buiten plaats. Toch kan het overbrengen van gegevens van en naar databases voor daadwerkelijk werk vertragingen veroorzaken.

ConnectorX laadt gegevens uit databases in veel veelgebruikte tools voor gegevensverwerking in Python, en het houdt dingen snel door de hoeveelheid werk die moet worden gedaan te minimaliseren.

ConnectorX gebruikt een Rust-programmeertaalbibliotheek in de kern. Dit maakt optimalisaties mogelijk, zoals het kunnen laden van een gegevensbron parallel met partitionering.

Gegevens in de PostgreSQL-database, u kunt het bijvoorbeeld op deze manier laden door een partitiekolom op te geven.

IConnectorX ondersteunt ook het lezen van gegevens uit verschillende databases, waaronder MySQL/MariaDB, SQLite, Amazon Redshift, Microsoft SQL Server, Azure SQL en Oracle.

U kunt de resultaten omzetten in Panda's of PyArrow DataFrames, of ze omleiden naar Modin, Dask of Polars met behulp van PyArrow.

2. DuckDB: werklasten voor analytische query's versterken

DuckDB gebruikt een kolomvormige datastore en optimaliseert voor langlopende analytische query-workloads. Het biedt alle functies die u van een conventionele database mag verwachten, inclusief ACID-transacties.

Bovendien kunt u het instellen in een Python-omgeving met een enkele pip-installatieopdracht, waardoor een afzonderlijke configuratie van de softwaresuite niet meer nodig is.

DuckDB neemt gegevens op in CSV-, JSON- of Parquet-indeling. DuckDB verbetert de efficiëntie door de resulterende databases op te delen in afzonderlijke fysieke bestanden op basis van sleutels zoals jaar en maand.

Wanneer u DuckDB gebruikt voor query's, gedraagt ​​het zich als een gewone SQL-aangedreven relationele database, maar met extra functies zoals het nemen van willekeurige gegevensmonsters en het maken van vensterfuncties.

Bovendien biedt DuckDB handige uitbreidingen zoals full-text zoeken, Excel import/export, directe verbindingen naar SQLite en PostgreSQL, het exporteren van bestanden in Parquet-indeling en het ondersteunen van verschillende veelgebruikte geospatiale gegevensindelingen en soorten.

3. Optimus: gegevensmanipulatie stroomlijnen

Het opschonen en voorbereiden van gegevens voor DataFrame-centrische projecten kan een van de minder benijdenswaardige taken zijn. Optimus is een alles-in-één toolset die is ontworpen om gegevens te laden, te verkennen, op te schonen en terug te schrijven naar verschillende gegevensbronnen.

Optimus kan Pandas, Dask, CUDF (en Dask + CUDF), Vaex of Spark gebruiken als onderliggende data-engine. U kunt laden vanuit en opslaan naar Arrow, Parquet, Excel, verschillende algemene databasebronnen of platte bestandsindelingen zoals CSV en JSON.

De API voor gegevensmanipulatie in Optimus is als Panda's, maar biedt meer .rijen() En .cols() accesoires. Deze accessoires maken verschillende taken veel gemakkelijker uit te voeren.

U kunt bijvoorbeeld een DataFrame sorteren, filteren op basis van kolomwaarden, gegevens wijzigen met behulp van specifieke criteria of bewerkingen verfijnen op basis van bepaalde voorwaarden. Bovendien bevat Optimus processors die zijn ontworpen om gangbare gegevenstypen uit de echte wereld, zoals e-mailadressen en URL's, te verwerken.

Het is belangrijk om te weten dat Optimus momenteel actief wordt ontwikkeld en dat de laatste officiële release in 2020 was. Hierdoor kan het minder up-to-date zijn in vergelijking met andere componenten in je stack.

4. Polars: dataframes versnellen

Als u merkt dat u met DataFrames werkt en gefrustreerd raakt door de prestatiebeperkingen van Panda's, Polaren is een prima oplossing. Deze DataFrame-bibliotheek voor Python biedt een handige syntaxis zoals Panda's.

In tegenstelling tot Panda's gebruikt Polars een bibliotheek geschreven in Rust die de mogelijkheden van uw hardware out-of-the-box maximaliseert. U hoeft geen speciale syntaxis te gebruiken om te genieten van prestatieverbeterende functies zoals parallelle verwerking of SIMD.

Zelfs eenvoudige bewerkingen zoals het lezen van een CSV-bestand zijn sneller. Bovendien biedt Polars zowel enthousiaste als luie uitvoeringsmodi, waardoor query's onmiddellijk kunnen worden uitgevoerd of uitgesteld tot het nodig is.

Het biedt ook een streaming-API voor incrementele queryverwerking, hoewel deze functie mogelijk nog niet voor alle functies beschikbaar is. Rust-ontwikkelaars kunnen ook hun eigen Polars-extensies maken met behulp van pyo3.

5. Snakemake: Data Science-workflows automatiseren

Het opzetten van data science-workflows vormt een uitdaging, en het waarborgen van consistentie en voorspelbaarheid kan zelfs nog moeilijker zijn. Slangenmaker pakt dit aan door de instellingen voor gegevensanalyse in Python te automatiseren, waardoor consistente resultaten voor iedereen worden gegarandeerd.

Veel bestaande data science-projecten vertrouwen op Snakemake. Naarmate uw data science-workflow complexer wordt, wordt automatisering met Snakemake nuttig.

Snakemake-workflows lijken op GNU make-workflows. In Snakemake definieert u gewenste resultaten met behulp van regels, die invoer, uitvoer en de benodigde opdrachten specificeren. U kunt workflowregels multithreaded maken om voordeel te halen uit parallelle verwerking.

Bovendien kunnen configuratiegegevens afkomstig zijn van JSON/YAML-bestanden. Met werkstromen kunt u ook functies definiëren voor het transformeren van gegevens die worden gebruikt in regels en logboekacties die bij elke stap worden uitgevoerd.

Snakemake ontwerpt taken die draagbaar en inzetbaar zijn in door Kubernetes beheerde omgevingen of specifieke cloudplatforms zoals Google Cloud Life Sciences of Tibanna op AWS.

U kunt werkstromen bevriezen om een ​​nauwkeurige pakketset te gebruiken, en uitgevoerde werkstromen kunnen gegenereerde eenheidstests daarin opslaan. Voor langetermijnarchivering kunt u workflows opslaan als tarballs.

Door deze nieuwste tools voor datawetenschap te omarmen, kunt u uw productiviteit verhogen, uw mogelijkheden uitbreiden en opwindende datagestuurde reizen maken. Onthoud echter dat het datawetenschapslandschap evolueert. Om voorop te blijven lopen, moet je blijven ontdekken, experimenteren en je aanpassen aan de nieuwe tools en technieken die opduiken in dit veranderende veld.