Une bibliothèque Python pour la manipulation et l'analyse de données
Project description
DataLib
DataLib est une bibliothèque Python conçue pour simplifier la manipulation et l'analyse de données.
Installation
pip install datalib
Fonctionnalités principales
- Manipulation de données
- Chargement et traitement des fichiers CSV
- Transformation des données (normalisation, gestion des valeurs manquantes)
- Statistiques
- Calculs statistiques de base (moyenne, médiane, mode, écart-type)
- Tests statistiques simples
- Visualisation
- Graphiques simples (barres, histogrammes, nuages de points)
- Visualisations avancées (matrices de corrélation)
- Analyse avancée
- Modèles de régression (linéaire, Ridge)
- Classification supervisée (k-NN, Random Forest)
- Méthodes non supervisées (k-means, DBSCAN, PCA)
Exemples d'utilisation
Manipulation de données
from datalib.data import loader, transformer
from datalib.stats import basic
from datalib.viz import basic as viz
# Charger des données
data_loader = loader.DataLoader()
df = data_loader.read_csv("donnees.csv")
# Transformer les données
data_transformer = transformer.DataTransformer()
df_normalized = data_transformer.normalize(df["colonne"])
df_clean = data_transformer.handle_missing_values(df)
# Calculer des statistiques
stats = basic.BasicStats()
moyenne = stats.mean(df["colonne"])
correlation = stats.correlation(df["colonne1"], df["colonne2"])
# Créer des visualisations
plots = viz.BasicPlots()
plots.histogram(df["colonne"], title="Distribution des valeurs")
plots.scatter_plot(df["colonne1"], df["colonne2"], title="Relation entre variables")
Apprentissage supervisé
from datalib.ml.supervised import SupervisedModels
# Régression linéaire
reg_model = SupervisedModels.linear_regression(X, y)
print(f"R² Score: {reg_model['r2']}")
print(f"Coefficients: {reg_model['coefficients']}")
# Classification avec Random Forest
rf_model = SupervisedModels.random_forest_classifier(
X, y,
n_estimators=100,
max_depth=5
)
print(f"Accuracy: {rf_model['accuracy']}")
print("Classification Report:")
print(rf_model['classification_report'])
# Évaluation avec validation croisée
eval_results = SupervisedModels.evaluate_classifier(
rf_model['model'],
X, y,
cv=5
)
print(f"Mean CV Accuracy: {eval_results['mean_accuracy']}")
print(f"Mean CV F1-Score: {eval_results['mean_f1']}")
Apprentissage non supervisé
from datalib.ml.unsupervised import UnsupervisedModels
# Clustering K-means
kmeans_results = UnsupervisedModels.kmeans_clustering(
X,
n_clusters=3
)
print(f"Inertia: {kmeans_results['inertia']}")
print("Cluster Labels:", kmeans_results['labels'])
# Analyse en composantes principales (PCA)
pca_results = UnsupervisedModels.pca_analysis(
X,
n_components=2
)
print("Variance expliquée:", pca_results['explained_variance_ratio'])
# Clustering DBSCAN
dbscan_results = UnsupervisedModels.dbscan_clustering(
X,
eps=0.5,
min_samples=5
)
print(f"Nombre de clusters: {dbscan_results['n_clusters']}")
print(f"Points de bruit: {dbscan_results['n_noise']}")
# Évaluation du clustering
eval_scores = UnsupervisedModels.evaluate_clustering(
X,
kmeans_results['labels']
)
print(f"Score de silhouette: {eval_scores['silhouette_score']}")
Documentation
La documentation complète est disponible sur Read the Docs.
Contribution
Les contributions sont les bienvenues ! Voici comment contribuer :
- Forkez le projet
- Créez votre branche de fonctionnalité (
git checkout -b feature/ma-fonctionnalite) - Committez vos changements (
git commit -m 'Ajout de ma fonctionnalité') - Poussez vers la branche (
git push origin feature/ma-fonctionnalite) - Ouvrez une Pull Request
Tests
Pour exécuter les tests :
pytest tests/
Licence
Ce projet est sous licence MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file datalib_isimm-0.2.0.tar.gz.
File metadata
- Download URL: datalib_isimm-0.2.0.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f42089863ca484f80647df78aea91c826a7ffe82004692179bd087b650262567
|
|
| MD5 |
922f6d520e0e55a9e699b8436751b918
|
|
| BLAKE2b-256 |
976c725a7e13053ca4b72e76e0f1d7e414db38259dd993279a46168976ef103d
|
File details
Details for the file datalib_isimm-0.2.0-py3-none-any.whl.
File metadata
- Download URL: datalib_isimm-0.2.0-py3-none-any.whl
- Upload date:
- Size: 3.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13fa99ea9d8665a88e27611fe9686a86cdb4912c64338eaf94fb1ffb7623896f
|
|
| MD5 |
7eeba8ddface1a7855703f43027327a4
|
|
| BLAKE2b-256 |
ffabe44745ea65a7261994aab09b74b58822d799c5d19291cefe2e95a096f3c1
|