Suite

Afficher le nombre d'entités de la couche via la console Python / PyQGIS


Lorsque je travaille avec des couches vectorielles dans QGIS, je peux afficher le nombre d'entités d'une couche et, le cas échéant, le nombre d'entités par catégorie d'attributs (par exemple lors de l'utilisation d'un style catégorisé ou gradué) via le menu contextuel de la couche. Les nombres sont ajoutés au titre de la couche qui s'affiche dans le widget de couche.

Comment puis-je activer cette fonctionnalité via la console Python/exécuter un script ? En parcourant la documentation de l'API, j'ai trouvé une méthode pour obtenir le nombre de fonctionnalités et les utiliser davantage dans votre script. Cependant, comment puis-je les afficher comme ils le feraient lors de l'utilisation de l'interface graphique ?

C'est probablement possible en récupérant le nombre d'entités comme décrit ci-dessus, puis en modifiant la symbologie du widget de couche, en ajoutant le nombre au titre. Cependant, c'est assez lourd, alors je me demande s'il existe un moyen direct d'y parvenir? Si non, comment le faire manuellement au mieux ?


C'est assez simple en utilisant des propriétés personnalisées par lesetCustomProperty()méthode.

L'exemple ci-dessous ajoute une couche mémoire à la légende et définit la propriété "showFeatureCount" sur True (vous pouvez l'exécuter à partir de la console pyqgis) :

## créer la couche mémoire et ajouter au registre myLayer = QgsVectorLayer("Point", "myLayer", "memory") QgsMapLayerRegistry.instance().addMapLayer(myLayer, False) ## référence à la racine de l'arborescence des couches = QgsProject. instance().layerTreeRoot() ## ajoute la couche mémoire au nœud de couche à l'index 0 myLayerNode = QgsLayerTreeLayer(myLayer) root.insertChildNode(0, myLayerNode) ## définit la propriété personnalisée myLayerNode.setCustomProperty("showFeatureCount", True)

Pour obtenir une propriété spécifique de la couche actuelle (couche de nœuds) dans l'arborescence des couches, vous pouvez utiliserPropriété personnalisée()ou alorspropriétés personnalisées()pour obtenir toutes les propriétés stockées pour cette couche :

myLayerNode.customProperty("showFeatureCount") ## le résultat est True myLayerNode.customProperties() ## le résultat est une liste [u'showFeatureCount']

Utilisation de la fenêtre Python

L'utilisation des boîtes de dialogue d'outils est le moyen le plus courant d'exécuter des opérations de géotraitement pour les novices en géotraitement. Lorsqu'un seul outil doit être exécuté à la fois, il s'agit d'un bon moyen d'exécuter des opérations. Les boîtes de dialogue de l'outil de géotraitement sont faciles à utiliser et fournissent un retour immédiat en plaçant des icônes et des messages d'avertissement ou d'erreur à côté des paramètres qui ne sont pas utilisés correctement. Cependant, il existe d'autres moyens plus efficaces d'exécuter des outils ou des opérations de géotraitement, tels que les scripts Python.

La fenêtre Python est un interpréteur (ou interface) Python entièrement interactif qui permet d'exécuter des outils de géotraitement et des fonctionnalités python dans une application ArcGIS for Desktop. Cette fenêtre est le meilleur emplacement pour accéder directement à la fonctionnalité de script Python dans ArcGIS. Les compétences acquises dans la fenêtre Python peuvent être directement appliquées lors de la création de scripts Python autonomes plus complexes ou d'outils de script Python.

La façon la plus simple d'utiliser Python dans ArcGIS consiste à entrer des commandes Python dans la fenêtre Python. La fenêtre Python affiche trois symboles supérieurs à ( >>>), indiquant la première ligne du bloc de code à exécuter. La syntaxe Python simple peut être immédiatement saisie et exécutée à partir de cette première ligne. Étant donné que le code Python saisi peut être exécuté immédiatement en appuyant sur la touche ENTRÉE, la fenêtre Python peut devenir un emplacement utile pour exécuter et afficher le code expérimental. En cas de doute sur le fonctionnement d'une commande Python particulière, ouvrez la fenêtre Python et testez jusqu'à ce que la commande s'exécute sans générer d'erreur.

Plusieurs fonctionnalités clés font de la fenêtre Python une ressource précieuse pour exécuter et expérimenter les commandes et la syntaxe Python :

  • Toutes les fonctionnalités Python sont exposées via la fenêtre Python.
  • Les commandes multilignes contenant plusieurs outils de géotraitement ou méthodes de géoprocesseur peuvent être saisies et exécutées.
  • Les outils ou fonctions qui ont déjà été saisis et exécutés peuvent être rappelés, modifiés et réexécutés.
  • Les commandes ou blocs de code Python peuvent être chargés à partir de fichiers Python existants.
  • Les commandes ou blocs de code Python peuvent être enregistrés dans un fichier Python ou texte pour être rechargés ultérieurement ou utilisés dans un environnement différent.
  • La fonctionnalité de saisie semi-automatique permet de renseigner les paramètres des outils de géotraitement plus rapidement et plus facilement que l'utilisation des boîtes de dialogue d'outils.

Dans l'exemple ci-dessus, une instruction simple est imprimée et une variable reçoit une valeur. Remarquez après l'instruction print et après la variable count , la valeur de retour est renvoyée dans la fenêtre Python.


Vous pouvez définir globalement les options d'impression. Je pense que cela devrait fonctionner :

Cela vous permettra de voir tous les noms de colonnes et les lignes lorsque vous faites .head() . Aucun nom de colonne ne sera tronqué.

Si vous voulez juste voir les noms de colonnes, vous pouvez faire :

Pour obtenir tous les noms de colonnes d'un DataFrame, df_data dans cet exemple, il suffit d'utiliser la commande df_data.columns.values ​​. Cela vous montrera une liste avec tous les noms de colonnes de votre Dataframe

Dans la console interactive, c'est facile à faire :

Ça fera l'affaire. Notez l'utilisation de display() au lieu de print.

L'utilisation de display est requise car les paramètres de pd.option_context ne s'appliquent qu'à display et non à print .

Ce qui a fonctionné pour moi était le suivant :

Vous pouvez également le définir sur un nombre entier supérieur à votre nombre de colonnes.

Le moyen le plus simple que j'ai trouvé est juste

Personnellement, je ne voudrais pas changer les globales, ce n'est pas si souvent que je veux voir tous les noms de colonnes.

Pour obtenir tous les noms de colonnes, vous pouvez itérer sur data_all2.columns .

Vous obtiendrez tous les noms de colonnes. Ou vous pouvez stocker tous les noms de colonnes dans une autre variable de liste, puis imprimer la liste.

Pas une réponse conventionnelle, mais je suppose que vous pourriez transposer le cadre de données pour regarder les lignes au lieu des colonnes. J'utilise ceci parce que je trouve que regarder les lignes est plus «intuitive» que de regarder les colonnes :

Cela devrait vous permettre de voir toutes les lignes. Cette action n'est pas permanente, il vous permet simplement de visualiser la version transposée de la trame de données.

Si les lignes sont toujours tronquées, utilisez simplement print(data_all2.T) pour tout afficher.

Si vous voulez juste voir toutes les colonnes, vous pouvez faire quelque chose de ce genre comme solution rapide

maintenant cols se comportera comme une variable itérative qui peut être indexée. par exemple

Une solution rapide et sale serait de le convertir en chaîne

les entraînerait tous à être imprimés séparés par des onglets Bien sûr, notez qu'avec 102 noms, tous assez longs, ce sera un peu difficile à lire

J'avais beaucoup de noms de colonnes en double, et une fois que j'ai couru

J'ai pu voir la liste complète des colonnes

Je sais que c'est une répétition mais je finis toujours par copier coller et modifier la réponse de YOLO :


2 réponses 2

Le protocole de communication entre les processus utilise décapage, et les données décapées sont préfixées par la taille des données décapées. Pour ta méthode, tous les arguments ensemble sont décapés comme un seul objet.

Vous avez produit un objet qui, une fois décapé, est plus grand que ce qu'il convient dans un formateur i struct (un entier signé de quatre octets), ce qui brise les hypothèses formulées par le code.

Vous pouvez plutôt déléguer la lecture de vos dataframes au processus enfant, en envoyant uniquement les métadonnées nécessaires pour charger le dataframe. Leur taille combinée est proche de 1 Go, beaucoup trop de données à partager sur un canal entre vos processus.

Mieux vaut hériter que décaper/décaper

Lors de l'utilisation des méthodes de démarrage spawn ou forkserver, de nombreux types issus du multitraitement doivent être sélectionnables afin que les processus enfants puissent les utiliser. Cependant, il faut généralement éviter d'envoyer des objets partagés à d'autres processus en utilisant des tuyaux ou des files d'attente. Au lieu de cela, vous devez organiser le programme de sorte qu'un processus qui a besoin d'accéder à une ressource partagée créée ailleurs puisse l'hériter d'un processus ancêtre.

Si vous n'exécutez pas sous Windows et utilisez les méthodes spawn ou forkserver, vous pouvez charger vos dataframes en tant que globales avant démarrage de vos sous-processus, auquel point les processus enfants « hériteront » des données via les mécanismes normaux de partage de page de mémoire de copie sur écriture du système d'exploitation.

Notez que cette limite a été augmentée pour les systèmes non Windows dans Python 3.8, à un long long non signé (8 octets), et vous pouvez donc maintenant envoyer et recevoir 4 EiB de données. Voir ce commit et les problèmes Python #35152 et #17560.

Si vous ne pouvez pas mettre à niveau et que vous ne pouvez pas utiliser l'héritage des ressources et que vous n'exécutez pas Windows, utilisez ce correctif :


Options de débogage¶

Active la détection des erreurs de mémoire

Désactive la saisie de la souris (pour interagir avec un débogueur dans certains cas)

Conserve le sys.stdin de Python plutôt que de le définir sur Aucun

Définissez la valeur de débogage de <value> au démarrage.

Activez les messages de débogage pour le système d'événements.

Activez les messages de débogage de la bibliothèque FFmpeg.

Activez les messages de débogage pour la gestion des événements.

Activez les messages de débogage de la bibliothèque libmv.

Activez les messages de débogage de Cycles.

Activez l'allocation de mémoire et le débogage entièrement protégés.

Activez le profilage temporel pour les tâches en arrière-plan.

Activez les messages de débogage pour Python.

Activez tous les messages de débogage du graphique de dépendance.

Activez les messages de débogage du graphique de dépendance liés à l'évaluation.

Activez les messages de débogage du graphe de dépendance liés à la construction du graphe.

Activez les messages de débogage du graphique de dépendance liés au balisage.

Basculez le graphique de dépendance vers une évaluation à thread unique.

Activez les messages de débogage du graphique de dépendance liés au timing.

Activer les couleurs pour les messages de débogage du graphique de dépendance.

Activez les messages de débogage du graphe de dépendance liés à la construction du graphe.

Activez les messages de débogage pour la gestion des événements.

Activez le contexte et les informations de débogage GPU pour OpenGL 4.3+.

Activez les solutions de contournement pour les problèmes de GPU typiques et désactivez toutes les extensions de GPU.

Activer les messages de débogage pour le gestionnaire de fenêtres, affiche tous les opérateurs dans la recherche, affiche les erreurs de keymap.

Activez les messages de débogage pour les contextes de réalité virtuelle. Active la couche de validation de l'API OpenXR, les messages de débogage (OpenXR) et les impressions d'informations générales.

Activez les messages de débogage pour les temps de rendu des images de réalité virtuelle.

Activez tous les messages de débogage.

Activer les messages de débogage pour les E/S (Collada, …).

Activez les exceptions à virgule flottante.

Quittez immédiatement lorsque des erreurs internes sont détectées.

Désactivez le gestionnaire de plantage.

Désactivez le gestionnaire d'abandon.

Définissez le niveau de verbosité de la journalisation pour les messages de débogage qui le prennent en charge.


Commencer¶

Dans la barre d'outils, cliquez pour afficher le GEE Timeseries Explorer panneau.

Il y a deux panneaux principaux : Le Fenêtre de tracé à gauche et le Collection et Visualisation paramètres à droite.

Le Collection sur le panneau de droite vous permet de sélectionner un Collection d'images dans la liste et filtrez-la par intervalle de temps et/ou propriétés de métadonnées. La sous-section Éditeur de collections fournit le code python utilisé pour accéder à l'imagerie et permet un contrôle total sur le code exécuté par l'utilisateur, ayant accès à l'intégralité Catalogue de données Earth Engine (https://developers.google.com/earth-engine/datasets).

Pour un démarrage rapide, l'extrait de code pour accéder au USGS Landsat 8 Réflectance de surface Niveau 1 la collection d'images est déjà préparée.

Cliquez sur le bouton d'information à côté de la liste de collecte pour ouvrir et inspecter le USGS Landsat 8 Réflectance de surface Niveau 1 la description.

Cette section affiche la série temporelle spectrale de la collection et de la période définies par l'utilisateur. Cliquer sur Activer l'outil de sélection de points dans le coin supérieur gauche du plugin et sélectionnez au moins une bande spectrale dans la liste. Ici, nous utilisons la collection prédéfinie Nuage de réflectance de surface Landsat TM-ETM-OLI masqué qui combine les capteurs Landsat en une seule collection et applique un masquage basé sur des bandes de qualité (indice : vérifiez le Éditeur de collections pour les détails). Régler Date du filtre au 1984-01-01 au 2020-12-31 pour utiliser l'intégralité des archives Landsat. De plus, il peut être utile d'éditer Filtrer la propriété de ne considérer que les scènes avec moins de 70 % de couverture nuageuse.

Ensuite, cliquez dans le canevas de la carte pour sélectionner un emplacement de point et lire les données du profil temporel.

Lorsque vous modifiez la plage de dates ou les propriétés des métadonnées filtrées, cliquez sur Lire le profil du point pour relire l'emplacement actuel.

Dans le panneau supérieur, cliquez sur pour récupérer les séries temporelles affichées sous forme de données brutes :

Il donne accès aux données brutes avec des informations sur l'identifiant unique de l'image, les coordonnées géographiques, la date d'acquisition et les valeurs spectrales pour toutes les bandes sélectionnées.

Outre les séries chronologiques basées sur des graphiques, vous pouvez visualiser des images entières et des agrégats d'images. Ouvrez le Visualisation onglet sur le panneau de droite. Dans la sous-section Classement temporel vous pouvez spécifier une fenêtre temporelle pour laquelle la visualisation sera rendue. Par défaut, cela correspond à une seule date, mais peut être étendu à une plage de dates en augmentant le Longueur valeur et/ou type des paramètres (Jour, Mois, Année). La ligne verticale jaune (date unique) ou la case (date multiple) dans le Fenêtre de tracé illustre graphiquement le choix donné et peut en outre être utilisé pour modifier la fenêtre temporelle de manière interactive en cliquant à l'intérieur de la fenêtre de tracé.

Deuxièmement, sélectionnez la visualisation d'image souhaitée dans le Rendu de bande sous-section. Pour les composites RVB, utilisez Multibande comme Type de rendu et sélectionnez une bande d'entrée pour chaque canal de couleur, par exemple en sélectionnant SWIR2 comme bande rouge, NIR comme bande verte et RED comme bande bleue. Par défaut, le Min max les valeurs sont estimées à l'aide de centiles (par défaut : 2 % à 98 %). De plus, nous avons vérifié Afficher l'étendue du canevas de la carte complète pour visualiser toutes les scènes acquises à la date spécifiée qui tombent dans l'étendue actuelle de notre canevas de carte.

Enfin, cliquez sur Appliquer pour estimer les valeurs et s'assurer que la visibilité de l'image est activée.

Essayez également d'utiliser les boutons dans le coin supérieur droit du plugin pour passer aux dates ou périodes d'observation précédentes/suivantes.

Visualiser des images agrégées temporellement

Dans le cas des données Landsat, il est utile non seulement de visualiser les données à une date spécifique, mais d'agréger plusieurs observations sur une plage de dates (par exemple, l'heure de revisite de 16 jours) et de visualiser également les observations des trajectoires de survol voisines en même temps. temps. De plus, l'agrégation de séries chronologiques en statistiques basées sur des pixels est utile pour préserver la variance tout en réduisant la dimensionnalité des données. Les calculs basés sur les pixels au fil du temps sont appelés Réducteurs dans Earth Engine. Pour chaque bande, vous pouvez choisir parmi une variété de réducteurs statistiques et les visualiser en conséquence.

Par exemple, visualisons la médiane de la combinaison de bandes sélectionnée pour l'ensemble de notre canevas de carte en utilisant toutes les images acquises en 2018 :

Souvent, nous avons besoin de séries temporelles de bandes spectrales ou d'indices pour plusieurs emplacements dans l'espace. GEE-TSE permet de spécifier une couche de points chargée dans QGIS pour laquelle la série temporelle des bandes sélectionnées et la période de temps peuvent être téléchargées dans des fichiers csv. Pour ce faire, sélectionnez une couche de points en entrée dans le Navigateur de points panneau en bas du plugin et cliquez sur dans le coin inférieur droit. Spécifiez un dossier cible dans lequel les fichiers .csv pour chaque entité de la couche de points sont stockés.

De plus, vous pouvez sélectionner les attributs de la couche de points et utiliser la liste ou les boutons pour recharger le tracé et la visualisation de l'image pour l'entité donnée.


Des photos

  • Dernière version : 1.26.0
    sorti le 05 avril 2021
  • Sorties : 62
  • Étoiles : 86
  • Numéros : 18 ouverts, 200 fermés
  • Dernière poussée : 05 avril 2021
  • OctoPrint : 1.3.10+, 1.4.0+
  • Systèmes d'exploitation : tous
  • Python : >=2.7,<4

S'il y a Quelque chose ne va pas avec cette annonce (liens brisés et images, etc.), veuillez le signaler ici.

Si ce plugin a été confirmé comme abandonné par son mainteneur, veuillez le signaler ici.


TUTORIELS

0.28.1 (2021-06-07)

  • Mettre à niveau le dépliant vers la 1.7.1.
  • Déprécier ‘LeafletWidget._get_attrs’ au profit de ‘LeafletWidget.get_attrs’

0.28.0 (2021-04-15)

  • Prise en charge de Django 3.1 et 3.2.
  • Abandon de la prise en charge de Django 1.11, 2.0 et 2.1.
  • traduire en persan #313

0.27.1 (2020-07-31)

0.27.0 (2020-07-03)

  • Abandon de la prise en charge de Django < 1.11 et Python 2
  • Mettre à niveau proj4js vers 2.6.1 et Proj4Leaflet vers 1.0.2 (#287)
  • Mettre à jour les traductions tchèques, ajouter les traductions slovaques #269
  • Ajouter la traduction arabe #274
  • Corrections de précision #280 #291
  • Afficher la carte sur mobile (Corrections #241) #292
  • Dépliant mis à jour vers la 1.6.0

0.26.0 (2019-12-06)

0.25.0 (2019-10-18)

  • #225 changements dans les fichiers statiques pour django 1.11.14
  • #247 Autoriser le redimensionnement de la zone de texte de géométrie brute via CSS, améliorer l'étiquette, ajouter des documents
  • #108 Ajoutez des exemples aux documents sur l'ajout de superpositions, la personnalisation des cartes dans les modèles, l'administration et les formulaires
  • #248 Autoriser l'utilisation d'un widget personnalisé dans l'Admin. (corrections #151)
  • #261 Ajouter une demande au correctif de signature formfield_for_dbfield #260
  • #262 Correction d'une entrée de manifeste de fichiers statiques manquante pour « leaflet/images »

0.24.0 (2018-06-07)

0.23.0 (2017-11-28)

  • Correction d'un bug fatal avec Django => 1.11.2 pour les bases de données non SIG
  • correctifs #188 Mieux remplacer pour l'image de l'icône
  • Ajouter la traduction en russe
  • Ajouter la traduction hongroise
  • Autoriser le stockage d'instances de carte de brochure globale

0.22.0 (2017-04-06)

  • Définissez un zoom maximum par défaut dans brochure.forms _setView pour éviter une erreur.
  • Corrigez les identifiants div pour qu'ils fonctionnent avec les lignes d'administration.
  • Compatibilité Django 1.11
  • Correction de multipolyligne/multipolygone et polyligne/polygone ne fonctionnant pas

0.21.0 (2017-02-28)

0.20.0 (2017-01-27)

Nouvelles fonctionnalités

  • Mettre à jour la brochure vers la 1.0.3 (#169)
  • Mettre à jour Leaflet-draw vers 0.4.0 (#169)
  • Mettre à jour Proj4Leaflet vers 1.0.0 (#169)
  • Appels statiques paresseux, pour résoudre les problèmes avec STATICFILES_STORAGE non par défaut (#149)
  • Ajouter un exemple d'application (#168)
  • Utilisez le chemin de la bibliothèque SpatiaLite à partir de la variable d'environnement pour exécuter le test (#173)
  • Correction du niveau de zoom maximum (#165)
  • Ajoutez la valeur par défaut SPATIAL_EXTENT aux paramètres par défaut (#167)

Un grand merci à @KostyaEsmukov, @cleder, @sikmir et @seav pour leurs contributions !

0.19.0 (2016-08-22)

Nouvelles fonctionnalités

  • Ajoutée brochure.admin.LeafletGeoAdminMixin, utile pour les formulaires en ligne empilés ou tabulaires (merci @KostyaEsmukov, @Xowap)

0.18.2 (2016-08-16)

0.18.1 (2016-04-07)

  • Si le paramètre TILES contient une liste vide, aucune couche de tuiles par défaut n'est générée (merci @dyve).
  • Correction pour permettre la sauvegarde multipoints (corrections #130, merci @rukayaj)
  • Correction du remplacement des paramètres (#142, merci @ndufrane)
  • Correction du paramètre de débogage de templatetags.leflet_js (#148, merci @arctelix)
  • Corrections pour la compatibilité Django 1.10 (#138, merci @PetrDiouhy)

0.18.0 (2016-01-04)

Nouvelles fonctionnalités

  • Utilisez un LazyEncoder pour autoriser les traductions paresseuses dans les paramètres (#132, merci @Mactory)
  • Activer settings_overrides également pour l'administrateur (corrections #120, merci @PetrDiouhy)
  • Ajouter des tests pour Django 1.9 et Python 3.5 (merci @itbabu)

0.17.1 (2015-12-16)

  • Mettre à jour la brochure à 0.7.7
  • Mettre à jour Leaflet-draw à 0.2.4
  • Correction du rendu du widget brochure lorsque la valeur initiale est une chaîne vide

0.17.0 (2015-11-11)

Nouvelles fonctionnalités

  • Passez les URL relatives des fichiers statiques via django.contrib.staticfiles (merci @dyve, correctifs #111)
  • Permet de remplacer les paramètres au niveau de la balise du modèle (merci @PetrDiouhy, correctifs #59)
  • Mettre à jour la brochure à 0.7.5 (@dyve)
  • Ajouter des paramètres régionaux tchèques (merci @PetrDiouhy)
  • Correction de l'interaction avec django-geojson (#106, merci @batisteo)
  • Utilisez des URL indépendantes du protocole dans les tuiles OSM par défaut (merci @NotSqrt)
  • Correction de TEMPLATE_DEBUG obsolète (#121, merci @josenaka)
  • Corrige les erreurs avec les noms de champs à plusieurs mots (#123, merci @josemazo)
  • Correction de loadevent non pris en compte dans les formulaires (#127, merci @josemazo)

0.16.0 (2015-04-17)

Nouvelles fonctionnalités

  • Ajouter un paramètre FORCE_IMAGE_PATH pour contourner Leaflet deviner sur les chemins d'image (utile lors de l'utilisation de django-compressor) (merci @nimasmi)
  • Ajouter des traductions en hébreu (merci @nonZero)
  • L'attribution de la carte peut être traduite à l'aide de ugettext_lazy
  • Correction des widgets suspendus pour toujours avec des points (merci @Azimkhan, corrections #90)
  • Supprimer setTimeout lors de l'appel de setView() (merci @manelclos, correctifs #89)
  • Correction de minZoom/maxZoom lorsqu'il n'est pas défini dans les paramètres (merci Manel Clos)

0.15.2 (2014-12-22)

0.15.1 (2014-12-04)

  • Supprimer les caractères spéciaux dans README (correctifs #82)
  • Correction de la traduction en français (corrections #86)
  • Correction de la localisation

0.15.0 (2014-10-24)

0.14.2 (2014-10-24)

  • Correction du support de Django 1.7 dans les tests (merci Marco Badan)
  • Ajouter des traductions en espagnol (merci David Martinez)

0.14.1 (2014-07-30)

  • Correction des événements de dessin reçus pour chaque contrôle de dessin sur la carte. (Avertir: map.drawControl l'attribut n'est plus défini)

0.14.0 (2014-07-29)

  • Correction de la sérialisation GeoJSON lors de la création de nouveaux enregistrements MultiPoint
  • Faire en sorte que la seule couche corresponde à la carte max/min_zoom (corrections #67) (merci Manel Clos)
  • Ajout d'un attribut de widget pour éditer plusieurs champs sur la même carte

0.13.7 (2014-06-26)

0.13.6 (2014-06-26)

  • Configurer les machines de projection dans les formulaires de dépliants si nécessaire
  • Django Leaflet forme des champs sans libgeos installé (merci Florent Lebreton)

0.13.5 (2014-06-18)

0.13.4 (2014-06-13)

0.13.3 (2014-06-10)

0.13.2 (2014-04-15)

0.13.1 (2014-04-10)

  • Correction de la dépendance GEOS, de retour en option pour l'édition de géométrie uniquement (corrections #65)
  • Ajouter minZoom et maxZoom à l'initialisation de la carte
  • Ajout de la prise en charge des emplacements de fichiers statiques avancés, comme S3 (merci @jnm)

0.13.0 (2014-03-26)

0.12 (2014-03-22)

0.11.1 (2014-02-12)

0.11.0 (2014-02-07)

  • Ajouter le contrôle des mesures métriques et impériales dans l'option SCALE (merci @smcoll)
  • Mise à niveau vers Leaflet.draw 0.2.3

0.10.1 (2014-02-03)

0.10.0 (2014-01-22)

0.9.0 (2013-12-11)

  • Mise à niveau vers la brochure 0.7.1
  • Correction d'un avertissement non enregistré étant toujours déclenché sur Internet Explorer.
  • Ajout des paramètres régionaux DE (merci @rosscdh)
  • Correction de l'installation avec python 2.6 (merci @ollb)

0.8.5 (2013-11-05)

0.8.4 (2013-11-05)

0.8.3 (2013-11-05)

0.8.2 (2013-10-31)

  • Correction du dessin du multi-polygone (corrections #37)
  • Correction des données jointes pour les événements avec le repli jQuery (corrections n° 38)
  • Corrige les erreurs de syntaxe Javascript lors de l'utilisation de préfixes de formulaire (correctifs n° 40)

0.8.1 (2013-09-30)

  • Correction de l'inclusion de la bibliothèque Leaflet avec "plugins=ALL" en dehors de l'administration.
  • N'incluez pas les traductions dans tous les widgets en dehors de l'administration.
  • Correction d'une erreur de syntaxe si les traductions de widget de formulaire contiennent des guillemets.
  • Correction d'une erreur de dépendance si Leaflet est chargé après le widget de formulaire dans le DOM.
  • Respecter l'ordre de déclaration des plugins en utilisant OrderedDicts
  • Ajoutez des actifs de formulaires (au lieu d'étendre) si PLUGINS['forms'] existe déjà.

0.8.0 (2013-09-18)

  • Modèle de fragment de carte Leaflet renommé
  • Widgets de géométrie de carte de dépliant pour le site d'administration et les formulaires (nécessite Django 1.6)
  • Correction de la restriction du type de géométrie dans les champs de formulaire (corrections #32)
  • Utilisez jQuery pour déclencher des événements, uniquement si le constructeur CustomEvent n'est pas disponible (corrections #27, corrections #34)

0.7.4 (2013-08-28)

  • Correction d'une erreur de téléchargement de projection si non disponible
  • Calculez les résolutions de la même manière que TileCache le fait et fournissez un exemple de configuration TileCache.
  • Raise ImproperlyConfigured si TILES_EXTENT n'est pas portrait (puisque non pris en charge)

0.7.3 (2013-08-23)

  • N'utilisez pas console() pour avertir des éléments obsolètes s'ils ne sont pas disponibles (<IE9)
  • Correction de l'apparence du contrôle Reset view pour Leaflet 0.6
  • Ajouter des paramètres régionaux français et italiens

0.7.2 (2013-08-23)

0.7.1 (2013-08-21)

  • Correction de l'initialisation de la carte avec le paramètre de tuiles par défaut
  • Corriger la carte fitBounds() à EXTENSION SPATIALE dans les paramètres

0.7.0 (2013-08-21)

Changements marquants

  • Le dépliant_map La balise template n'enregistre plus les fonctions d'initialisation dans la portée globale et n'ajoute plus d'objets de carte dans window.maps tableau par défaut. Utilisation LEAFLET_CONFIG['NO_GLOBALS'] = Faux pour restaurer ces fonctionnalités.
  • La fonction de rappel d'initialisation ne reçoit plus la carte bornes dans le deuxième argument, mais l'objet d'options de carte.
  • Fonction de rappel par défaut JS ( <name>Init() ) pour l'initialisation de la carte est obsolète. Utiliser explicite rappeler paramètre dans la balise de modèle, ou écoutez l'événement de fenêtre carte:initialisation au lieu. (Voir Utiliser l'API Leaflet section du fichier README.)
  • TILES_URL entrée dans LEAFLET_CONFIG est obsolète. Utilisation CARRELAGE au lieu.
  • La recherche des paramètres est limitée à LEAFLET_CONFIG dict. Notamment, SRID, MAP_SRID et EXTENSION SPATIALE au niveau global des paramètres Django sont déconseillés.

Nouvelles fonctionnalités

  • Ajout de la possibilité d'associer des attributions de couches à partir des paramètres
  • Ajouter inclusion automatique clé pour les entrées dans PLUGINS paramètre, afin de charger implicitement les plugins avec dépliant_css et dépliant_js Mots clés.
  • Réécriture de l'initialisation de la carte, de manière moins flexible et moins obstruée.
  • Utilisez le système de plugin pour Leaflet.MiniMap.
  • Ajouter événement de chargement paramètre à dépliant_map étiqueter.
  • L'initialisation de la carte est maintenant idempotente, ne fait rien si la carte est déjà initialisée.
  • Ajouter ATTRIBUTION_PREFIX paramètre pour contrôler le préfixe globalement.

0.6.0 (2013-08-08)

0.6.0a (2013-07-05)

  • Mise à niveau vers la brochure 0.6.2
  • Upgrade Leaflet.Minimap (rev 3cd58f7)
  • Mettre à niveau Proj4Leaflet (rev f4f5b6d)

0.5.1 (2013-04-08)

  • Ajout de la prise en charge de la minicarte
  • Changement de version de la brochure Drop
  • Mettre à jour la brochure à 0.5.1
  • Mettre à jour la brochure.Minimap
  • Correction de l'apparence du bouton Réinitialiser la vue

0.4.1 (2012-11-05)

0.4.0 (2012-11-05)

0.3.0 (2012-10-26)

  • Supprimer le paramètre de résolution maximale car il peut être calculé
  • Autoriser le contrôle de l'échelle même si la vue n'est pas définie
  • Mise à niveau de la brochure vers la 0.4.5

0.2.0 (2012-09-22)

  • Correction de l'emballage des modèles
  • Utiliser le modèle pour le fragment <head>
  • Ne vous fiez pas à spatialreference.org par défaut
  • Paramètres par défaut pour le SRID
  • Paramètres par défaut pour l'étendue de la carte
  • Hauteur de la carte par défaut
  • Couche de base de tuiles par défaut
  • la variable map n'est plus globale

0.1.0 (2012-08-13)

  • Prise en charge initiale de la projection cartographique
  • Afficher l'échelle de zoom par défaut
  • Configuration de l'étendue spatiale
  • Rappel d'initialisation au lieu de la variable JS globale
  • Changement de version de la notice
  • Configuration des couches globales

0.0.2 (2012-03-22)

0.0.1 (2012-03-16)


6 réponses 6

Le taille du lot définit le nombre d'échantillons qui seront propagés à travers le réseau.

Par exemple, disons que vous avez 1050 échantillons d'apprentissage et que vous souhaitez configurer un batch_size égal à 100. L'algorithme prend les 100 premiers échantillons (du 1er au 100e) de l'ensemble de données d'apprentissage et entraîne le réseau. Ensuite, il prend les 100 deuxièmes échantillons (du 101e au 200e) et entraîne à nouveau le réseau. Nous pouvons continuer à faire cette procédure jusqu'à ce que nous ayons propagé tous les échantillons à travers le réseau. Un problème peut survenir avec la dernière série d'échantillons. Dans notre exemple, nous avons utilisé 1050 qui n'est pas divisible par 100 sans reste. La solution la plus simple consiste simplement à obtenir les 50 derniers échantillons et à entraîner le réseau.

Avantages de l'utilisation d'une taille de lot et d'un nombre de tous les échantillons :

Il nécessite moins de mémoire. Étant donné que vous entraînez le réseau en utilisant moins d'échantillons, la procédure d'entraînement globale nécessite moins de mémoire. C'est particulièrement important si vous n'êtes pas en mesure d'insérer l'ensemble de données dans la mémoire de votre machine.

En règle générale, les réseaux s'entraînent plus rapidement avec des mini-lots. C'est parce que nous mettons à jour les poids après chaque propagation. Dans notre exemple, nous avons propagé 11 lots (10 d'entre eux avaient 100 échantillons et 1 avait 50 échantillons) et après chacun d'eux, nous avons mis à jour les paramètres de notre réseau. Si nous utilisions tous les échantillons pendant la propagation, nous ne ferions qu'une seule mise à jour pour le paramètre du réseau.

Inconvénients de l'utilisation d'une taille de lot et d'un nombre de tous les échantillons :

  • Plus le lot est petit, moins l'estimation du gradient sera précise. Dans la figure ci-dessous, vous pouvez voir que la direction du dégradé du mini-lot (couleur verte) fluctue beaucoup plus par rapport à la direction du dégradé du lot complet (couleur bleue).

Stochastique est juste un mini-lot avec batch_size égal à 1. Dans ce cas, le dégradé change de direction encore plus souvent qu'un dégradé de mini-lot.

Dans la terminologie des réseaux de neurones :

  • un époque = une passe avant et une passe arrière de tous les exemples de formation
  • taille du lot = le nombre d'exemples d'entraînement dans un passage avant/arrière. Plus la taille du lot est élevée, plus vous aurez besoin d'espace mémoire.
  • nombre de itérations = nombre de passes, chaque passe utilisant [taille du lot] nombre d'exemples. Pour être clair, une passe = une passe avant + une passe arrière (nous ne comptons pas la passe avant et la passe arrière comme deux passes différentes).

Exemple : si vous avez 1000 exemples d'entraînement et que la taille de votre lot est de 500, il faudra alors 2 itérations pour terminer 1 époque.

Lorsque vous résolvez avec un CPU ou un GPU un problème d'optimisation, vous appliquez de manière itérative un algorithme sur certaines données d'entrée. Dans chacune de ces itérations, vous mettez généralement à jour une métrique de votre problème en effectuant des calculs sur les données. Désormais, lorsque la taille de vos données est importante, il peut falloir beaucoup de temps pour terminer chaque itération et peut consommer beaucoup de ressources. Vous choisissez donc parfois d'appliquer ces calculs itératifs sur une partie des données pour économiser du temps et des ressources de calcul. Cette partie est le batch_size et le processus est appelé (dans Neural Network Lingo) traitement de données par lots. Lorsque vous appliquez vos calculs à toutes vos données, vous effectuez un traitement de données en ligne. Je suppose que la terminologie vient des années 60, et même avant. Est-ce que quelqu'un se souvient des fichiers .bat DOS ? Mais bien sûr le concept incarné pour signifier un fil ou une partie des données à utiliser.

La documentation de Keras sur la taille des lots se trouve sous la fonction fit dans la page Modèles (API fonctionnelle)

batch_size : Entier ou Aucun. Nombre d'échantillons par mise à jour du gradient. S'il n'est pas spécifié, batch_size sera par défaut 32.

Si vous avez un petit ensemble de données, il serait préférable que la taille du lot soit égale à la taille des données d'apprentissage. Essayez d'abord avec un petit lot puis augmentez pour gagner du temps. Comme itdxer l'a mentionné, il y a un compromis entre la précision et la vitesse.

La question a été posée il y a quelque temps mais je pense que les gens sont encore en train de tomber dessus. Pour moi, cela m'a aidé à connaître le contexte mathématique pour comprendre le traitement par lots et d'où viennent les avantages/inconvénients mentionnés dans la réponse d'itdxer. Veuillez donc considérer cela comme une explication complémentaire à la réponse acceptée.

Considérez Gradient Descent comme un algorithme d'optimisation pour minimiser votre fonction de perte $J( heta)$ . L'étape de mise à jour dans Gradient Descent est donnée par

$ heta_ = heta_ - alpha abla J( heta)$

Pour plus de simplicité, supposons que vous n'ayez qu'un seul paramètre ( $n=1$ ), mais que vous ayez un total de 1050 échantillons d'apprentissage ( $m = 1050$ ) comme suggéré par itdxer.

Descente de gradient en lot complet

Dans Batch Gradient Descent, on calcule d'abord le gradient pour un lot d'échantillons d'apprentissage (représenté par la somme dans l'équation ci-dessous, ici le lot comprend tous les échantillons $m$ = full-batch), puis met à jour le paramètre :

$ heta_ = heta_ - alpha somme^m_ abla J_j( heta)$

C'est ce qui est décrit dans l'extrait wikipedia de l'OP. Pour un grand nombre d'échantillons d'apprentissage, l'étape de mise à jour devient très coûteuse car le gradient doit être évalué pour chaque somme.

Descente de gradient stochastique

Dans Stochastic Gradient Descent, on calcule le gradient pour un échantillon d'apprentissage et met immédiatement à jour le paramètre. Ces deux étapes sont répétées pour tous les échantillons d'apprentissage.

$ heta_ = heta_ - alpha abla J_j( heta)$

Une étape de mise à jour est moins coûteuse puisque le gradient n'est évalué que pour un seul échantillon d'apprentissage j.

Différence entre les deux approches

Vitesse de mise à jour: La descente de gradient par lots a tendance à converger plus lentement car le gradient doit être calculé pour tous les échantillons d'apprentissage avant la mise à jour. Dans le même nombre d'étapes de calcul, la descente de gradient stochastique a déjà mis à jour le paramètre plusieurs fois. Mais pourquoi devrions-nous alors même choisir Batch Gradient Descent ?

Sens de convergence: Une vitesse de mise à jour plus rapide se fait au prix d'une "précision" plus faible. Étant donné que dans la descente de gradient stochastique, nous incorporons uniquement un seul échantillon d'apprentissage pour estimer le gradient, il ne converge pas aussi directement que la descente de gradient par lots. On pourrait dire que la quantité d'informations dans chaque étape de mise à jour est plus faible dans SGD par rapport à BGD.

La convergence moins directe est bien décrite dans la réponse d'itdxer. Full-Batch a la voie de convergence la plus directe, alors que les mini-lots ou les stochastiques fluctuent beaucoup plus. Aussi avec SDG, il peut arriver théoriquement que la solution ne converge jamais complètement.

Capacité mémoire: Comme l'a souligné itdxer, l'alimentation des échantillons d'apprentissage sous forme de lots nécessite une capacité de mémoire pour charger les lots. Plus le lot est important, plus la capacité de mémoire requise est importante.

Dans mon exemple, j'ai utilisé Gradient Descent et aucune fonction de perte particulière, mais le concept reste le même car l'optimisation sur ordinateur comprend toujours des approches itératives.

Ainsi, en traitant par lots, vous avez une influence sur la vitesse d'entraînement (taille de lot plus petite) par rapport à la précision de l'estimation du gradient (taille de lot plus grande). En choisissant la taille du lot, vous définissez le nombre d'échantillons d'apprentissage combinés pour estimer le gradient avant de mettre à jour le(s) paramètre(s).


Étiquetage des parcelles

Dans la dernière partie de cette section, nous examinerons brièvement l'étiquetage des tracés : titres, étiquettes d'axe et légendes simples.

Les titres et les étiquettes d'axe sont les étiquettes les plus simples. Il existe des méthodes qui peuvent être utilisées pour les définir rapidement (Figure 4-17) :

Figure 4-17. Exemples d'étiquettes et de titre d'axe

Vous pouvez ajuster la position, la taille et le style de ces étiquettes à l'aide d'arguments facultatifs de la fonction. Pour plus d'informations, consultez la documentation Matplotlib et les docstrings de chacune de ces fonctions.

Lorsque plusieurs lignes sont affichées dans un seul axe, il peut être utile de créer une légende de tracé qui étiquette chaque type de ligne. Encore une fois, Matplotlib a un moyen intégré de créer rapidement une telle légende. Cela se fait via la (vous l'avez deviné) méthode plt.legend(). Bien qu'il existe plusieurs manières valides d'utiliser cela, je trouve qu'il est plus facile de spécifier l'étiquette de chaque ligne en utilisant le mot-clé label de la fonction plot (Figure 4-18):

Figure 4-18. Exemple de légende de tracé

Comme vous pouvez le voir, la fonction plt.legend() garde une trace du style et de la couleur de la ligne et les fait correspondre avec l'étiquette correcte. Plus d'informations sur la spécification et le formatage des légendes de tracé peuvent être trouvées dans la docstring plt.legend(). De plus, nous couvrirons certaines options de légende plus avancées dans « Personnalisation des légendes de tracé ».

Matplotlib Gotchas

Alors que la plupart des fonctions plt se traduisent directement en méthodes ax (telles que plt.plot() → ax.plot() , plt.legend() → ax.legend() , etc.), ce n'est pas le cas pour toutes les commandes. En particulier, les fonctions pour définir les limites, les étiquettes et les titres sont légèrement modifiées. Pour effectuer la transition entre les fonctions de style MATLAB et les méthodes orientées objet, effectuez les modifications suivantes :

Dans l'interface orientée objet de traçage, plutôt que d'appeler ces fonctions individuellement, il est souvent plus pratique d'utiliser la méthode ax.set() pour définir toutes ces propriétés à la fois (Figure 4-19) :

Figure 4-19. Exemple d'utilisation de ax.set pour définir plusieurs propriétés à la fois

Afficher le nombre d'entités de la couche via la console Python / PyQGIS - Systèmes d'information géographique

Une liste organisée de superbes frameworks, bibliothèques, logiciels et ressources Python.

Bibliothèques pour interfaces administratives.

    - Le panneau d'administration que vos serveurs méritent. - Un skin jazzy pour l'interface d'administration Django. - Modèle réactif moderne pour l'interface d'administration de Django avec des fonctionnalités améliorées. - Interface d'administration alternative de Django (gratuit uniquement pour une utilisation non commerciale). - Le remplacement instantané de l'administrateur Django est livré avec de nombreux avantages. - Cadre d'interface administrative simple et extensible pour Flask. - Moniteur en temps réel et administrateur Web pour Celery. - Cadre de panneau d'administration pour toute application avec une belle interface utilisateur (ex Jet Django) - Une application Django qui crée des interfaces utilisateur Web automatiques pour les scripts Python.

Algorithmes et modèles de conception

Implémentation Python de structures de données, d'algorithmes et de modèles de conception. Voir aussi Awesome-Algorithms.

    Algorithmes
      - Exemples minimaux de structures de données et d'algorithmes. - Une collection de structure de données et d'algorithmes pour le codage des entretiens. - Implémentation rapide et pure-Python des collections triées. - Tous les algorithmes implémentés en Python.
      - Une bibliothèque simple mais efficace pour la mise en œuvre de modèles de conception communs. - Une collection de modèles de conception en Python. - Une implémentation de machine à états finis légère et orientée objet.
      - Un serveur de protocoles HTTP, HTTP2 et WebSocket pour ASGI et ASGI-HTTP. - Une implémentation de serveur ASGI ultra-rapide, utilisant uvloop et httptools.

    Bibliothèques pour manipuler l'audio et ses métadonnées.

      l'audio
        - Décodage audio cross-library (GStreamer + Core Audio + MAD + FFmpeg). - Empreinte et reconnaissance audio. - Keras Audio Preprocessors - Bibliothèque Python pour l'analyse audio et musicale - Une bibliothèque pour le mastering audio de référence automatisé. - Un package avancé de théorie musicale et de notation avec prise en charge des fichiers MIDI et de la lecture. - Extraction de caractéristiques audio, classification, segmentation et applications. - Manipulez l'audio avec une interface de haut niveau simple et facile. - Cadre de traitement audio Web ouvert.
        - Un gestionnaire de bibliothèque musicale et un tagueur MusicBrainz. - Un outil pour travailler avec des fichiers audio, en particulier des fichiers MP3 contenant des métadonnées ID3. - Un module Python pour gérer les métadonnées audio. - Une bibliothèque pour lire les métadonnées musicales des fichiers MP3, OGG, FLAC et Wave.

      Bibliothèques pour la mise en œuvre de schémas d'authentification.

        OAuth
          - Implémentation du projet de signature et de cryptage d'objets JavaScript. - Application d'authentification pour Django qui "fonctionne tout simplement". - Des goodies OAuth 2 pour Django. - Une implémentation générique et complète de la logique de signature de requête OAuth. - Une interface abstraite entièrement testée pour créer des clients et des serveurs OAuth. - Un mécanisme d'authentification sociale facile à configurer.
          - Implémentation du JSON Web Token en Python. - Une implémentation JOSE en Python. - Un module de génération et de vérification des JSON Web Tokens.

        Compiler le logiciel à partir du code source.

          - Un outil de construction de type make-like pour Linux embarqué. - Un système de build pour créer, assembler et déployer des applications à partir de plusieurs parties. - Un outil console pour construire du code avec différentes plateformes de développement. - Un outil de build continu écrit en pur Python. - Un outil de construction de logiciels.

        Amélioration des classes intégrées

        Bibliothèques pour améliorer les classes intégrées Python.

          - Remplacement de __init__ , __eq__ , __repr__ , etc. passe-partout dans les définitions de classe. - Structures de données cartographiques bidirectionnelles pythoniques efficaces et fonctionnalités associées. - Dictionnaires Python avec accès avancé à la notation par points. - (Bibliothèque standard Python) Classes de données. - Une bibliothèque qui fournit une méthode d'accès aux listes et aux dicts avec une notation de chemin en pointillés.

        Systèmes de gestion de contenu.

          - Un CMS d'entreprise Open source basé sur Django. - L'un des systèmes de gestion de contenu les plus avancés construit sur Django. - Un système de gestion d'événements riche en fonctionnalités, réalisé au CERN. - Un framework d'application Web Pythonic de haut niveau construit sur Pyramid. - Une plateforme de gestion de contenu puissante, cohérente et flexible. - Un CMS construit sur le serveur d'applications open source Zope. - Petit CMS flexible, extensible et optimisé par Flask et MongoDB. - Un système de gestion de contenu Django.

        Bibliothèques pour la mise en cache des données.

          - Un middleware WSGI pour les sessions et la mise en cache. - Mise en cache et invalidation automatique pour les modèles Django. - Un cache ORM élégant avec invalidation automatique granulaire basée sur les événements. - dogpile.cache est le remplacement de nouvelle génération pour Beaker fabriqué par les mêmes auteurs. - Bibliothèque de mise en cache Python avec invalidation basée sur les balises et prévention de l'effet dogpile. - Un wrapper Python autour de l'interface libmemcached. - SQLite et backend de cache sauvegardé par fichier avec des recherches plus rapides que memcached et redis.

        Bibliothèques pour le développement de chatbot.

        Outils d'analyse statique, linters et vérificateurs de qualité de code.Voir aussi awesome-static-analysis.

          Analyse de code
            - Application d'analyse de code indépendante du langage et facilement extensible. - Transformez votre code Python et JavaScript en organigrammes DOT. - Un outil pour analyser le code Python. - Une bibliothèque qui visualise le flux (graphe d'appel) de votre application Python. - Un outil pour trouver et analyser le code Python mort.
            - Un wrapper autour de pycodestyle , pyflakes et McCabe.
            - Le formateur de code Python sans compromis. - Un utilitaire/bibliothèque Python pour trier les importations. - Encore un autre formateur de code Python de Google.
            - Vérifiez les types de variables pendant la compilation. - Vérification de type performante. - Collection de stubs de bibliothèque pour Python, avec des types statiques.
            - Un système pour Python qui génère des annotations de type statique en collectant des types d'exécution. - Génération automatique d'annotations PEP-484. - Pytype vérifie et déduit les types de code Python - sans nécessiter d'annotations de type.

          Développement d'interface de ligne de commande

          Bibliothèques pour la création d'applications en ligne de commande.

            Développement d'applications en ligne de commande
              - Cadre d'application CLI pour Python. - Un package pour créer de belles interfaces de ligne de commande de manière composable. - Un framework pour créer des programmes en ligne de commande avec des commandes à plusieurs niveaux. - Analyseur d'arguments en ligne de commande Python. - Une bibliothèque pour créer des interfaces de ligne de commande à partir d'absolument n'importe quel objet Python. - Une bibliothèque pour créer de puissantes lignes de commande interactives.
              - Un nouveau type de barre de progression, avec un débit en temps réel, une eta et des animations très sympas. - Un package pour créer des interfaces utilisateur de texte en plein écran (des formulaires interactifs aux animations ASCII). - Réalisation de tracés de base dans le terminal. - Texte de terminal de couleur multiplateforme. - Bibliothèque Python pour un texte riche et une belle mise en forme dans le terminal. Fournit également un excellent gestionnaire de journaux RichHandler. - Barre de progression rapide et extensible pour les boucles et CLI.

            Des outils CLI utiles pour la productivité.

              Outils de productivité
                - Une bibliothèque et un utilitaire de ligne de commande pour le rendu des modèles de projets. - Un utilitaire en ligne de commande qui crée des projets à partir d'emporte-pièces (modèles de projet). - Un outil pour les présentations en direct dans le terminal. - Codage instantané des réponses via la ligne de commande. - Un outil pour gérer les sous-processus orientés shell et organiser le code Python exécutable en tâches invocables en CLI. - Sélectionnez les fichiers hors de la sortie bash. - Ajoute une saveur de sélection interactive au concept de pipe traditionnel sur UNIX. - Correction de votre commande de console précédente. - Un gestionnaire de session tmux. - Une interface de ligne de commande très simple pour essayer les packages python - cela n'a jamais été aussi simple.
                - Un client HTTP en ligne de commande, un remplacement cURL convivial. - Redis CLI avec saisie semi-automatique et coloration syntaxique. - Un shell intégré pour travailler avec la CLI Kubernetes. - CLI SQLite avec saisie semi-automatique et coloration syntaxique. - MySQL CLI avec saisie semi-automatique et coloration syntaxique. - CLI PostgreSQL avec saisie semi-automatique et coloration syntaxique. - Un aws-cli suralimenté.

              Bibliothèques pour migrer de Python 2 vers 3.

                - La couche de compatibilité manquante entre Python 2 et Python 3. - Modernise le code Python pour une éventuelle migration vers Python 3. - Utilitaires de compatibilité Python 2 et 3.

              Bibliothèques pour la vision par ordinateur.

                - OCR prêt à l'emploi avec plus de 40 langues prises en charge. - Bibliothèque de reconnaissance faciale simple. - Bibliothèque de vision par ordinateur différentiable open source pour PyTorch. - Bibliothèque de vision par ordinateur Open Source. - Un wrapper pour Google Tesseract OCR. - Un framework open source pour la création d'applications de vision par ordinateur. - Un autre wrapper simple et convivial autour de l'API tesseract-ocr pour l'OCR.

              Concurrence et parallélisme

              Bibliothèques pour l'exécution simultanée et parallèle. Voir aussi awesome-asyncio.

                - (Bibliothèque standard Python) Une interface de haut niveau pour l'exécution asynchrone des callables. - Framework asynchrone avec support WSGI. - Une bibliothèque de réseau Python basée sur la coroutine qui utilise greenlet. - (Bibliothèque standard Python) Parallélisme basé sur les processus. - Opérations simultanées évolutives en Python. - Implémentation ultra rapide de la boucle d'événements asyncio au-dessus de libuv .

              Bibliothèques pour le stockage et l'analyse des options de configuration.

                - Analyseur de fichier INI avec validation. - (Bibliothèque standard Python) Analyseur de fichiers INI. - Hydra est un framework pour configurer avec élégance des applications complexes. - Config à partir de plusieurs formats avec conversion de valeur. - Séparation stricte des paramètres du code.
                - Un package conçu pour exposer des primitives et des recettes cryptographiques aux développeurs Python. - La principale bibliothèque de protocoles natifs Python SSHv2. - Bibliothèque sécurisée de stockage/hachage de mots de passe, de très haut niveau. - Liaison Python à la bibliothèque Networking and Cryptography (NaCl).

              Bibliothèques pour l'analyse des données.

                - Pandas sur AWS. - Interface NumPy et Pandas vers le Big Data. - Business Intelligence (BI) dans l'interface Pandas. - Flux de travail Agile Data Science simplifiés avec PySpark. - Exploration de données, visualisation de données, analyse et apprentissage automatique via une programmation visuelle ou des scripts. - Une bibliothèque fournissant des structures de données et des outils d'analyse de données performants et faciles à utiliser.

              Bibliothèques pour la validation des données. Utilisé pour les formulaires dans de nombreux cas.

                - Une bibliothèque de validation de données légère et extensible. - Validation et désérialisation des données obtenues via XML, JSON, un post de formulaire HTML. - Une implémentation de JSON Schema pour Python. - Une bibliothèque pour valider les structures de données Python. - Validation de la structure des données. - Bibliothèque légère et extensible de validation et d'adaptation des données. - Une bibliothèque de validation de données Python.

              Bibliothèques pour visualiser les données. Voir aussi awesome-javascript.

                - Bibliothèque de visualisation statistique déclarative pour Python. - Traçage Web interactif pour Python. - Bibliothèque de traçage interactive pour Jupyter Notebook - Une bibliothèque cartographique python avec prise en charge de matplotlib - Construit sur Flask, React et Plotly destiné aux applications Web analytiques.

              Bases de données implémentées en Python.

                - Un magasin clé-valeur simple et léger pour Python. - Une petite base de données orientée document. - Une base de données d'objets native pour Python. Une base de données clé-valeur et graphique d'objets.

              Bibliothèques de connexion et d'exploitation de bases de données.

                MySQL - génial-mysql
                  - Connecteur MySQL avec support Python 3 (fork mysql-python). - Un pilote MySQL pur Python compatible avec mysql-python.
                  - L'adaptateur PostgreSQL le plus populaire pour Python. - Un wrapper de la bibliothèque psycopg2 pour interagir avec PostgreSQL.
                  - (Bibliothèque standard Python) Interface SQlite compatible avec DB-API 2.0 - Une bibliothèque SQLite suralimentée construite sur apsw.
                  - Une interface de base de données simple vers Microsoft SQL Server. - Pilote Python avec interface native pour ClickHouse.
                  - Le pilote Python pour Apache Cassandra. - Une bibliothèque conviviale pour les développeurs pour Apache HBase. - Le client Python pour Apache Kafka. - Une bibliothèque cliente et une boîte à outils pour travailler avec Neo4j. - Le client Python officiel pour MongoDB. - Le client Python pour Redis.
                  - Le pilote Python asynchrone pour MongoDB.

                Bibliothèques pour travailler avec les dates et les heures.

                  - Une bibliothèque Python qui offre une approche sensée et conviviale pour créer, manipuler, formater et convertir des dates, des heures et des horodatages. - Une bibliothèque Python 3 pour analyser les heures et les dates écrites par l'homme. - Extensions du module datetime Python standard. - Une bibliothèque pour clarifier les vérités gênantes qui surviennent concernant les dates-heures. - Datetimes pour les humains. - Une bibliothèque Python pour gérer les dates/heures. Inspiré de Moment.js. - Les dates et heures Python simplifiées. - Un module Python simple d'utilisation qui vise à faire fonctionner date/heure/date/heure par chaîne. - Définitions des fuseaux horaires mondiaux, modernes et historiques. Introduit la base de données tz dans Python. - Fournir des fonctions conviviales pour aider à effectuer des actions de date et d'heure courantes.

                Bibliothèques pour le débogage du code.

                  Débogueur de type pdb
                    - pdb compatible IPython. - Un autre remplacement pour pdb. - Un débogueur Python plein écran basé sur une console. - Un débogueur web improbable via WebSockets.
                    - strace pour les programmes Python. - Déboguer les connexions socket UNIX et présenter les traces de pile pour tous les threads et une invite interactive. - Débogueur capable de s'attacher et d'injecter du code dans les processus Python. - Une boîte à outils de traçage de code flexible.
                    - Profilage ligne par ligne. - Surveiller l'utilisation de la mémoire du code Python. - Un profileur d'échantillonnage pour les programmes Python. Écrit en rouille. - Un profileur de traçage pour Python. - Profileur visuel Python.
                    - Afficher diverses informations de débogage pour Django. - Un remplacement instantané pour le runserver de Django. - Un portage de django-debug-toolbar vers flask. - Inspectez les variables, les expressions et l'exécution du programme avec un seul et simple appel de fonction. - Analyser et analyser les fichiers ELF et les informations de débogage DWARF.

                  Cadres pour les réseaux de neurones et l'apprentissage en profondeur. Voir aussi génial-deep-learning.

                    - Un cadre ouvert rapide pour l'apprentissage en profondeur. - Une bibliothèque de réseaux de neurones de haut niveau et capable de s'exécuter sur TensorFlow ou Theano. - Un cadre d'apprentissage en profondeur conçu à la fois pour l'efficacité et la flexibilité. - Tensors et réseaux de neurones dynamiques en Python avec une forte accélération GPU. - Cadre d'agent de jeu. Utilisez n'importe quel jeu vidéo comme bac à sable d'apprentissage en profondeur. - Le framework de Deep Learning le plus populaire créé par Google. - Une bibliothèque pour le calcul numérique rapide.

                  Logiciels et bibliothèques pour DevOps.

                    Gestion de la configuration
                      - Une plateforme d'automatisation informatique radicalement simple. - Un package multi-distribution qui gère l'initialisation précoce d'une instance cloud. - Logiciel open source pour la construction de clouds privés et publics. - Un outil CLI polyvalent et des bibliothèques python pour automatiser l'infrastructure. - Système d'automatisation et de gestion des infrastructures.
                      - Fonctionnalité de chef pour Fabric. - Un outil Pythonic simple pour l'exécution et le déploiement à distance. - Des outils pour écrire de superbes fichiers Fabric.
                      - Un clone Python de Foreman, pour gérer les applications basées sur Procfile. - Superviseur système de contrôle de processus pour UNIX.
                      - Un module de processus et d'utilitaires système multiplateforme.
                      - Un archiveur de déduplication avec compression et cryptage.
                      - Environnements de développement rapides et isolés utilisant Docker.

                    Frameworks et bibliothèques pour l'informatique distribuée.

                      Le traitement par lots
                        - Une bibliothèque de calcul parallèle flexible pour le calcul analytique. - Un module qui vous aide à créer des pipelines complexes de tâches par lots. - Exécutez des tâches MapReduce sur Hadoop ou Amazon Web Services. - API Apache Spark Python. - Un système pour Python parallèle et distribué qui unifie l'écosystème du machine learning.
                        - Une bibliothèque de traitement de flux, portant les idées de Kafka Streams vers Python. - Exécutez du code Python sur des flux de données en temps réel via Apache Storm.

                      Bibliothèques pour créer des exécutables packagés pour la distribution des versions.

                        - Construire et distribuer un virtualenv sous forme de paquet Debian. - Compiler des scripts, des modules, des packages vers un exécutable ou un module d'extension. - Gèle les scripts Python (Mac OS X). - Gèle les scripts Python (Windows). - Un outil utilisé pour obscurcir les scripts python, lier les scripts obscurcis à une machine fixe ou faire expirer les scripts obscurcis. - Convertit les programmes Python en exécutables autonomes (multiplateforme). - Un outil pour créer des installateurs Windows, les installateurs regroupent Python lui-même. - Un utilitaire de ligne de commande pour créer des zipapps entièrement autonomes (PEP 441), mais avec toutes leurs dépendances incluses.

                      Bibliothèques pour générer la documentation du projet.

                      Bibliothèques à télécharger.

                        - Une bibliothèque d'interface de données financières, conçue pour les êtres humains ! - Un outil de ligne de commande pour gérer Amazon S3 et CloudFront. - Outil de ligne de commande Super S3, bon pour des performances supérieures. - Un téléchargeur de vidéos YouTube/Youku/Niconico écrit en Python 3. - Un petit programme en ligne de commande pour télécharger des vidéos depuis YouTube.

                      Frameworks et bibliothèques pour le commerce électronique et les paiements.

                        - API Alipay non officielle pour Python. - Une application de panier d'achat construite à l'aide de la mezzanine. - Un framework e-commerce open-source pour Django. - Un système de boutique basé sur Django. - Taux de change, indice de prix Bitcoin et conversion de devises. - Une application Django pour accepter les paiements de divers processeurs de paiement. - Classe d'argent avec un formatage optionnel basé sur CLDR et un échange de devises extensible. - Afficher le format de l'argent et ses monnaies sales. - Une vitrine e-commerce pour Django. - Une plateforme E-Commerce open source basée sur Django.
                        Emacs
                          - Environnement de développement Python Emacs.
                          - Anaconda transforme votre Sublime Text 3 en un IDE de développement Python complet. - Un plugin Sublime Text vers l'impressionnante bibliothèque de saisie semi-automatique Jedi.
                          - Liaisons Vim pour la bibliothèque d'auto-complétion Jedi pour Python. - Un plugin tout-en-un pour transformer Vim en un IDE Python. - Comprend un moteur de complétion basé sur Jedi pour Python.
                          - Outils Python pour Visual Studio.
                          - L'extension officielle VSCode avec un support riche pour Python.
                          - IDE Python commercial par JetBrains. A une édition communautaire gratuite disponible. - IDE Python open source.

                        Bibliothèques pour l'envoi et l'analyse des e-mails.

                          Serveurs de messagerie
                            - Une plateforme d'hébergement et de gestion de messagerie incluant une interface utilisateur Web moderne. - Un serveur de messagerie Python.
                            - Python IMAP pour les humains. - Encore un autre client Gmail/SMTP.
                            - Une adresse e-mail et une bibliothèque d'analyse Mime. - Cadre de livraison de courrier extensible à hautes performances.

                          Intégrations d'applications d'entreprise

                          Plateformes et outils pour les intégrations de systèmes dans les environnements d'entreprise

                          Bibliothèques pour la version Python et la gestion de l'environnement virtuel.

                          Bibliothèques pour la manipulation de fichiers et la détection de type MIME.

                            - (Bibliothèque standard Python) Mappez les noms de fichiers sur les types MIME. - Un wrapper de module pour os.path. - (Bibliothèque standard Python) Une bibliothèque de chemins multiplateforme orientée objet. - La couche d'abstraction du système de fichiers de Python. - Une interface Python vers la bibliothèque d'identification de type de fichier libmagic. - Une approche orientée objet des opérations sur les fichiers/répertoires. - Utilitaires API et shell pour surveiller les événements du système de fichiers.

                          Interface de fonction étrangère

                          Bibliothèques pour fournir une interface de fonction étrangère.

                            - Interface de fonction étrangère pour Python appelant le code C. - (Bibliothèque standard Python) Interface de fonction étrangère pour Python appelant du code C. - Un wrapper Python pour l'API CUDA de Nvidia. - Wrapper et générateur d'interface simplifiés.

                          Bibliothèques pour travailler avec des formulaires.

                            - Bibliothèque de génération de formulaires Python HTML influencée par la bibliothèque de génération de formulaires formish. - Intégration de Bootstrap 3 avec Django. - Intégration de Bootstrap 4 avec Django. - Une application Django qui vous permet de créer de belles formes d'une manière très élégante et SEC. - Un sérialiseur de formulaire Django indépendant de la plate-forme. - Une bibliothèque flexible de validation et de rendu de formulaires.

                          Programmation fonctionnelle avec Python.

                            - Une variante de Python conçue pour une programmation fonctionnelle Pythonique simple, élégante. - Implémentation Cython de Toolz : Utilitaires fonctionnels haute performance. - Programmation fonctionnelle en Python : implémentation des fonctionnalités manquantes pour profiter de FP. - Un outil fonctionnel fantaisie et pratique. - Plus de routines pour opérer sur iterables, au-delà des itertools . - Un ensemble de monades, de transformateurs et d'utilitaires de composition de type sûr. - Une collection d'utilitaires fonctionnels pour les itérateurs, les fonctions et les dictionnaires.

                          Bibliothèques pour travailler avec des applications d'interface utilisateur graphique.

                            - Wrapper intégré pour ncurses utilisé pour créer des applications GUI de terminal. - Une bibliothèque pour créer des applications GUI HTML/JS hors ligne simples de type Electron. - Création de belles interfaces utilisateur avec la syntaxe déclarative comme QML. - Flexx est une boîte à outils Python pure pour la création d'interfaces graphiques, qui utilise la technologie Web pour son rendu. - Transformez les programmes de ligne de commande en une application GUI complète avec une seule ligne. - Une bibliothèque pour créer des applications NUI, fonctionnant sous Windows, Linux, Mac OS X, Android et iOS. - Un fenêtrage multiplateforme et une bibliothèque multimédia pour Python. - Liaisons Python pour GLib/GObject/GIO/GTK+ (GTK+3). - Liaisons Python pour l'application multiplateforme Qt et le framework d'interface utilisateur. - Wrapper pour tkinter, Qt, WxPython et Remi. - Un wrapper natif multiplateforme léger autour d'un composant Webview. - Tkinter est le package GUI standard de facto de Python. - Une boîte à outils GUI native du système d'exploitation Python natif. - Une bibliothèque pour créer des applications d'interface graphique de terminal avec un support solide pour les widgets, les événements, les couleurs riches, etc. - Un mélange de la bibliothèque de classes C++ wxWidgets avec Python. - Un framework d'interface graphique Python simple accéléré par GPU

                          Bibliothèques pour travailler avec GraphQL.

                            - Framework GraphQL pour Python. - Un wrapper basé sur aiohttp pour Tartiflette pour exposer les API GraphQL sur HTTP. - Support ASGI pour le moteur Tartiflette GraphQL. - Première implémentation du moteur GraphQL SDL pour Python 3.6+ et asyncio.

                          Bibliothèques de développement de jeux impressionnantes.

                            - Arcade est un framework Python moderne pour créer des jeux avec des graphismes et un son convaincants. - cocos2d est un framework pour créer des jeux 2D, des démos et d'autres applications graphiques/interactives. - Framework Python pour le développement 3D, VR et de jeux. - Moteur de jeu 3D développé par Disney. - Pygame est un ensemble de modules Python conçus pour écrire des jeux. - Les liaisons Python pour le moteur de rendu Ogre 3D, peuvent être utilisées pour les jeux, les simulations, tout ce qui est en 3D. - Les liaisons Python ctypes pour OpenGL et ses API associées. - Un wrapper basé sur des ctypes pour la bibliothèque SDL2. - Un moteur Visual Novel.

                          Bibliothèques pour géocoder les adresses et travailler avec les latitudes et les longitudes.

                            - Une application Django qui fournit un champ pays pour les modèles et les formulaires. - Un framework web géographique de classe mondiale. - API Python pour la base de données héritée MaxMind GeoIP. - Liaisons Python et utilitaires pour GeoJSON. - Boîte à outils de géocodage Python.

                          Bibliothèques pour travailler avec HTML et XML.

                            - Fournir des idiomes Pythonic pour l'itération, la recherche et la modification HTML ou XML. - Une bibliothèque de désinfection HTML et de liaison de texte basée sur une liste blanche. - Une bibliothèque CSS pour Python. - Une bibliothèque conforme aux normes pour l'analyse et la sérialisation des documents et fragments HTML. - Une bibliothèque très rapide, facile à utiliser et polyvalente pour la gestion du HTML et du XML. - Implémente une chaîne sécurisée XML/HTML/XHTML Markup pour Python. - Une bibliothèque de type jQuery pour l'analyse HTML. - Convertit les documents XML en objets Python pour un accès facile. - Un moteur de rendu visuel pour HTML et CSS pouvant exporter au format PDF. - Analyse XML simple. - Travailler avec XML donne l'impression de travailler avec JSON.

                          Bibliothèques pour travailler avec HTTP.

                            - requêtes + gevent pour les requêtes HTTP asynchrones. - Bibliothèque cliente HTTP complète. - Un client HTTP de nouvelle génération pour Python. - Requêtes HTTP pour les humains. - Les requêtes Python comme l'API construites sur le client HTTP de Twisted. - Une bibliothèque HTTP avec pool de connexions thread-safe, prise en charge de la publication de fichiers, convivialité.

                          Bibliothèques pour la programmation avec du matériel.

                            - Boîte à outils en ligne de commande pour travailler avec Arduino. - Accrochez et simulez des événements clavier globaux sur Windows et Linux. - Accrochez et simulez des événements de souris globaux sur Windows et Linux. - Pingo fournit une API uniforme pour programmer des appareils comme le Raspberry Pi, pcDuino, Intel Galileo, etc. - Un module pour le contrôle multiplateforme de la souris et du clavier. - Une bibliothèque brillante de manipulation de paquets.

                          Bibliothèques pour manipuler des images.

                            - Remappage de l'histogramme de l'image. - Un projet de recherche d'une collection d'images utilisant la similarité visuelle. - Détection de nudité. - Génération d'identité rétro (Avatar) basée sur la chaîne d'entrée et le hachage. - Pillow est la sympathique fourchette PIL. - Créez des codes-barres en Python sans dépendances supplémentaires. - Filtres d'image de type Instagram. - Une bibliothèque pour le matage alpha. - Un générateur de code QR Python pur. - Un outil qui génère des schémas de couleurs à partir d'images.- Une bibliothèque de traitement d'images rapide avec peu de besoins en mémoire. - L'art informatique basé sur les quadtrees. - Une bibliothèque Python pour le traitement d'images (scientifiques). - Un service d'imagerie intelligent. Il permet le recadrage, le redimensionnement et le retournement des images à la demande. - Liaisons Python pour MagickWand, API C pour ImageMagick.

                          Implémentations de Python.

                            - Implémentation du langage de programmation Python écrit en Common Lisp. - Implémentation par défaut et la plus largement utilisée du langage de programmation Python écrit en C. - Optimisation du compilateur statique pour Python. - Plus de compilateur que d'interpréteur en tant que remplacement CPython2.7 plus puissant (alpha). - Implémentation du langage de programmation Python écrit en C#. - Implémentation du langage de programmation Python écrit en Java pour la JVM. - Une implémentation légère et efficace du langage de programmation Python. - Compilateur Python JIT vers LLVM destiné au Python scientifique. - Assembleur x86-64 embarqué dans Python. - Un JIT pour Python basé sur CoreCLR. - Une implémentation très rapide et conforme du langage Python. - Une implémentation Python utilisant les techniques JIT. - Une version améliorée du langage de programmation Python.

                          Interpréteurs Python interactifs (REPL).

                            - Une interface sophistiquée avec l'interpréteur Python. - Une boîte à outils riche pour vous aider à tirer le meilleur parti de l'utilisation interactive de Python.

                          Bibliothèques pour travailler avec i18n.

                            - Une bibliothèque d'internationalisation pour Python. - Un wrapper de composants internationaux pour la bibliothèque Unicode C++ (ICU).

                          Bibliothèques pour la planification des tâches.

                            - Airflow est une plate-forme pour créer, planifier et surveiller les flux de travail par programmation. - Un planificateur de tâches en cours de processus léger mais puissant qui vous permet de planifier des fonctions. - Une application de calendrier pour Django. - Un gestionnaire de tâches et un outil de construction. - Outil d'exécution de tâches polyvalent pour les systèmes distribués avec interface Web. - Un ensemble d'outils pour fournir un pipeline léger en Python. - Écrire un fichier crontab en Python comme un charme. - Un cadre d'orchestration de workflow moderne qui facilite la création, la planification et la surveillance de pipelines de données robustes. - Planification des tâches Python pour les humains. - Un puissant moteur de workflow implémenté en pur Python. - Une bibliothèque Python qui aide à rendre l'exécution des tâches facile, cohérente et fiable.

                          Bibliothèques pour générer et travailler avec des journaux.

                            - Remplacement de la journalisation pour Python. - (Bibliothèque standard Python) Fonction de journalisation pour Python. - Bibliothèque qui vise à apporter une connexion agréable en Python. -Sentry SDK pour Python. - La journalisation structurée rendue facile.

                          Bibliothèques pour l'apprentissage automatique. Voir aussi génial-machine-learning.

                            - Une boîte à outils pour développer et comparer des algorithmes d'apprentissage par renforcement. - Plate-forme d'apprentissage automatique évolutive rapide et open source. - Métriques d'évaluation de l'apprentissage automatique. - Plateforme Numenta pour l'informatique intelligente. - La bibliothèque Python la plus populaire pour l'apprentissage automatique. - La bibliothèque d'apprentissage automatique évolutive d'Apache Spark. - Un wrapper Python léger pour Vowpal Wabbit. - Une bibliothèque d'amplification de gradient évolutive, portable et distribuée. - MindsDB est une couche d'IA open source pour les bases de données existantes qui vous permet de développer, d'entraîner et de déployer sans effort des modèles d'apprentissage automatique de pointe à l'aide de requêtes standard.

                          Programmation Python sur Microsoft Windows.

                            - Distribution Python orientée applications scientifiques basée sur Qt et Spyder. - Binaires Windows non officiels pour les packages d'extension Python. - Intégration de Python avec le .NET Common Language Runtime (CLR). - Extensions Python pour Windows. - Environnement de développement portable pour Windows 7/8.

                          Bibliothèques ou outils utiles qui ne rentrent pas dans les catégories ci-dessus.

                            - Un système de distribution rapide de signaux/événements Python en cours de processus. - Un ensemble d'utilitaires purement Python. - Diverses aides pour transmettre des données de confiance à des environnements non fiables. - Un outil pour générer de la musique et de l'art en utilisant l'intelligence artificielle. - Un système de plugin simple mais flexible pour Python. - Un cadre commercial à usage général.

                          Traitement du langage naturel

                          Bibliothèques pour travailler avec les langues humaines.

                            Général
                              - Modélisation de sujets pour les humains. - Système d'identification de langue autonome. - Une plate-forme leader pour la création de programmes Python pour travailler avec des données de langage humain. - Un module de web mining. - Pipeline de langage naturel prenant en charge des centaines de langues. - Un framework de modélisation en langage naturel basé sur PyTorch. - Une boîte à outils permettant le prototypage rapide de la PNL par apprentissage profond pour la recherche. - Une bibliothèque pour le traitement du langage naturel de qualité industrielle en Python et Cython. - La bibliothèque Python officielle du groupe Stanford NLP, prenant en charge plus de 60 langues.
                              - Une collection d'outils et d'ensembles de données pour la PNL chinoise. - La bibliothèque de segmentation de texte chinois la plus populaire. - Une boîte à outils pour la segmentation des mots chinois dans divers domaines. - Une bibliothèque de traitement de texte chinois.

                            Outils et bibliothèques pour Virtual Networking et SDN (Software Defined Networking).

                              - Un émulateur de réseau populaire et une API écrite en Python. - API multi-fournisseurs pour manipuler les périphériques réseau. - Des applications de contrôle SDN basées sur Python, telles que les contrôleurs OpenFlow SDN.

                            Bibliothèques pour construire les activités des utilisateurs.

                              - Générer des flux d'activités génériques à partir des actions sur votre site. - Création de flux d'actualités et de systèmes de notification à l'aide de Cassandra et Redis.

                            Bibliothèques qui implémentent des techniques de mappage objet-relationnel ou de mappage de données.

                              Bases de données relationnelles
                                - L'ORM Django. - La boîte à outils Python SQL et le mappeur relationnel objet.
                                - Types de données Python riches pour Redis. - Un Object-Document-Mapper Python pour travailler avec MongoDB. - Une interface Pythonic pour Amazon DynamoDB. - Une bibliothèque Python pour les modèles simples et les conteneurs a persisté dans Redis.

                              Bibliothèques pour la gestion des packages et des dépendances.

                              Serveur de référentiel PyPI local et proxys.

                                - Outil de mise en miroir PyPI fourni par Python Packaging Authority (PyPA). - Serveur PyPI et outil de packaging/test/release. - Serveur PyPI local (packages personnalisés et mise en miroir automatique de pypi). - Référentiel de packages Python de nouvelle génération (PyPI).

                              Cadres et outils pour les tests d'intrusion.

                                - Un framework de tests d'intrusion. - Une boîte à outils pour l'ingénierie sociale. - Outil d'injection SQL automatique et de reprise de base de données.

                              Bibliothèques qui autorisent ou refusent aux utilisateurs l'accès aux données ou aux fonctionnalités.

                                - Implémentation d'autorisations par objet pour Django 1.2+ - Une application minuscule mais puissante fournissant des autorisations au niveau objet à Django, sans nécessiter de base de données.

                              Bibliothèques pour démarrer et communiquer avec les processus du système d'exploitation.

                              Bibliothèques pour la création de systèmes de recommandation.

                                - Voisins les plus proches approximatifs en C++/Python optimisés pour l'utilisation de la mémoire. - Une bibliothèque pour les machines de factorisation. - Une implémentation Python rapide du filtrage collaboratif pour les ensembles de données implicites. - Une bibliothèque pour Field-aware Factorization Machine (FFM). - Une implémentation Python d'un certain nombre d'algorithmes de recommandation populaires. - Modèles de recommandation profonde utilisant PyTorch. - Un scikit pour construire et analyser des systèmes de recommandation. - Un framework de moteur de recommandation dans TensorFlow.

                              Outils et bibliothèques de refactoring pour Python

                                - Bicycle Repair Man, un outil de refactoring pour Python. - Refactoring de code sécurisé pour Python moderne. - Rope est une bibliothèque de refactoring python.

                              Bibliothèques pour créer des API RESTful.

                                Django
                                  - Une boîte à outils puissante et flexible pour créer des API Web. - Création de délicieuses API pour les applications Django.
                                  - Framework d'API REST optimisé par Flask, MongoDB et de bonnes intentions. - API Web navigables pour Flask. - Création rapide d'API REST pour Flask.
                                  - Un framework RESTful pour Pyramid.
                                  - Un framework d'API Web intelligent, conçu pour Python 3. - Un framework hautes performances pour la création d'API cloud et de backends d'applications Web. - Un framework Web moderne et rapide pour créer des API avec Python 3.6+ basé sur des astuces de type Python standard. - Un framework Python 3 pour exposer proprement les API. - API REST automatisées pour les systèmes existants basés sur des bases de données. - Un serveur Web Python 3.6+ et un framework Web écrits pour aller vite. - Framework Web rapide, efficace et asynchrone inspiré de Flask.
                                  - Il s'agit d'une compilation de divers algorithmes robotiques avec des visualisations. - Ceci est une bibliothèque pour ROS (Robot Operating System).
                                  (Appel Python à distance) - Une bibliothèque RPC transparente et symétrique pour Python - zerorpc est une implémentation RPC flexible basée sur ZeroMQ et MessagePack.

                                Bibliothèques pour le calcul scientifique. Voir aussi Python-for-Scientists.

                                  - Une bibliothèque Python communautaire pour l'Astronomie. - Fournir des pipelines de meilleures pratiques pour une analyse de séquençage à haut débit entièrement automatisée. - Recueil de codes utiles liés à l'analyse biologique. - Biopython est un ensemble d'outils disponibles gratuitement pour le calcul biologique. - Une bibliothèque pour analyser et interpréter les résultats des progiciels de chimie computationnelle. - Implémentation d'un nombre complet de transformations et d'algorithmes de la théorie des couleurs. - Boîte à outils d'apprentissage automatique non supervisée pour les données structurées en graphes. - Un logiciel à haute productivité pour les réseaux complexes. - Une collection de boîtes à outils de neuroimagerie. - Un package fondamental pour le calcul scientifique avec Python. - Une boîte à outils Python pour la sismologie. - Une boîte à outils chimique conçue pour parler les nombreux langages des données chimiques. - Abréviation de Python Dynamics, utilisée pour faciliter le flux de travail dans la modélisation du mouvement dynamique. - Boîte à outils d'échantillonnage de Markov Chain Monte Carlo. - Boîte à outils quantique en Python. - Logiciels de Cheminformatie et Machine Learning. - Un écosystème basé sur Python de logiciels open source pour les mathématiques, les sciences et l'ingénierie. - Un cadre de simulation à événements discrets basé sur les processus. - Modélisation statistique et économétrie en Python. - Une bibliothèque Python pour les mathématiques symboliques. - Une bibliothèque de trading algorithmique Pythonic.

                                Bibliothèques et logiciels pour l'indexation et l'exécution de requêtes de recherche sur les données.

                                  - Recherche modulaire pour Django. - Le client Python officiel de haut niveau pour Elasticsearch. - Le client Python de bas niveau officiel pour Elasticsearch. - Un wrapper Python léger pour Apache Solr. - Une bibliothèque de moteur de recherche Python rapide et pure.

                                Bibliothèques pour la sérialisation de types de données complexes

                                  - Une bibliothèque légère pour convertir des objets complexes vers et à partir de types de données Python simples. - Une liaison Python pour simdjson. - Un wrapper Python autour de RapidJSON. - Un décodeur et un encodeur JSON rapides écrits en C avec des liaisons Python.

                                Frameworks pour développer du code Python sans serveur.

                                  - Une boîte à outils pour développer et déployer du code Python dans AWS Lambda. - Un outil de déploiement d'applications WSGI sur AWS Lambda et API Gateway.

                                Traitement de formats spécifiques

                                Bibliothèques pour l'analyse et la manipulation de formats de texte spécifiques.

                                  Général
                                    - Un module pour les jeux de données tabulaires en XLS, CSV, JSON, YAML.
                                    - Édition d'un document docx par modèle jinja2 - Une bibliothèque pour lire et écrire des fichiers Excel 2010 xlsx/xlsm/xltx/xltm. - Fournir une API pour lire, manipuler et écrire des fichiers csv, ods, xls, xlsx et xlsm. - Lit, interroge et modifie les fichiers docx Microsoft Word 2007/2008. - Bibliothèque Python pour créer et mettre à jour des fichiers PowerPoint (.pptx). - Convertir entre n'importe quel format de document pris en charge par LibreOffice/OpenOffice. - Un module Python pour créer des fichiers Excel .xlsx. - Une bibliothèque sous licence BSD qui facilite l'appel de Python à partir d'Excel et vice versa. / xlrd - Écriture et lecture de données et informations de formatage à partir de fichiers Excel.
                                    - Un outil pour extraire des informations à partir de documents PDF. - Une bibliothèque capable de diviser, fusionner et transformer des pages PDF. - Permettre la création rapide de documents PDF riches.
                                    - Les analyseurs syntaxiques Python purs les plus rapides et les plus complets de Markdown. - Une implémentation Python de Markdown de John Gruber.
                                    - Implémentations YAML pour Python.
                                    - Utilitaires pour convertir et travailler avec CSV.
                                    - Un outil en ligne de commande qui peut facilement décompresser les archives.

                                  Le générateur de site statique est un logiciel qui prend du texte + des modèles en entrée et produit des fichiers HTML en sortie.

                                    - Un CMS statique et un moteur de blog faciles à utiliser. - Générateur de documentation convivial Markdown. - Générateur de site/blog statique simple, léger et sans magie (< 130 lignes). - Un site statique et un générateur de blog. - Générateur de site statique prenant en charge la syntaxe Markdown et reST.

                                  Bibliothèques pour le marquage des éléments.

                                  Bibliothèques pour travailler avec des files d'attente de tâches.

                                    - Une file d'attente de tâches/file d'attente de travaux asynchrone basée sur le passage de messages distribué. - Une bibliothèque de traitement de tâches en arrière-plan rapide et fiable pour Python 3. - Petite file d'attente de tâches multi-thread. - Une file d'attente de tâches de travail distribuée en Python à l'aide de Redis & gevent. - Files d'attente de tâches simples pour Python.

                                  Bibliothèques et outils de création de modèles et de lexage.

                                    - Boîte à outils de modélisation Python pour la génération de sortie Web. - Un langage de modélisation moderne et convivial pour les concepteurs. - Modèles hyperrapides et légers pour la plate-forme Python.

                                  Bibliothèques pour tester les bases de code et générer des données de test.

                                    Cadres de test
                                      - Hypothesis est une bibliothèque de test avancée basée sur les propriétés de style Quickcheck. - Le successeur de nose , basé sur `unittest2. - Un outil de test Python mature et complet. - Un framework générique d'automatisation des tests. - (Bibliothèque standard Python) Framework de tests unitaires.
                                      - Un lanceur de test propre et coloré. - L'outil de test définitif pour Python. Né sous la bannière de BDD. - Auto builds et tests distributions dans plusieurs versions de Python
                                      - Outil de test de charge utilisateur évolutif écrit en Python. - PyAutoGUI est un module Python d'automatisation d'interface graphique multiplateforme pour les êtres humains. - Un outil de test automatique basé sur les propriétés des applications Web construites avec les spécifications Open API / Swagger. - Liaisons Python pour Selenium WebDriver. - Un framework de test A/B indépendant du langage. - Outil open source pour tester des applications Web.
                                      - Puissant framework de doubles de test pour Python. - Voyagez dans le temps en vous moquant du module datetime. - Une bibliothèque moqueuse pour les requêtes pour Python 2.6+ et 3.2+. - Outil de simulation de requête HTTP pour Python. - (Bibliothèque standard Python) Une bibliothèque de moqueurs et de correctifs. - Un cadre de simulation de socket avec support gevent/asyncio/SSL. - Une bibliothèque utilitaire pour se moquer de la bibliothèque Python des requêtes. - Enregistrez et rejouez les interactions HTTP sur vos tests.
                                      - Un remplacement des appareils de test pour Python. - Un autre remplacement de luminaires. Prend en charge Django, Flask, SQLAlchemy, Peewee et etc. - Création de luminaires aléatoires pour les tests dans Django.
                                      - Mesure de couverture de code.
                                      - Générateur de fausse base de données. - Un package Python qui génère de fausses données. - est une bibliothèque Python qui vous aide à générer de fausses données. - Générer une date/heure aléatoire.

                                    Bibliothèques pour l'analyse et la manipulation de textes bruts.

                                      Général
                                        - Détecteur d'encodage de caractères compatible Python 2/3. - (Bibliothèque standard Python) Aides pour le calcul des deltas. - Rend le texte Unicode moins cassé et plus cohérent automatiquement. - Correspondance de chaîne floue. - Calcul rapide de la distance de Levenshtein et de la similarité des chaînes. - Espacement du texte paranoïaque. - Une implémentation de figlet écrite en Python. - Convertir le hanzi chinois (漢字) en pinyin (拼音). - Calculez la distance entre les séquences avec plus de 30 algorithmes. - Translittérations ASCII de texte Unicode.
                                        - Une bibliothèque Python slugify qui peut préserver l'unicode. - Une bibliothèque Python slugify qui traduit l'unicode en ASCII. - Un slugifier qui génère des slugs unicode avec Django comme dépendance.
                                        - Implémentation des hashids en Python. - Une bibliothèque génératrice d'UUID concis, sans ambiguïté et sécurisés pour les URL.
                                        - Implémentation d'outils d'analyse lex et yacc pour Python. - Un surligneur de syntaxe générique. - Un cadre général pour la génération d'analyseurs. - Analyser les noms humains dans leurs composants individuels. - Analyse, formatage, stockage et validation des numéros de téléphone internationaux. - Parseur de l'agent utilisateur du navigateur. - Un analyseur SQL non validant.

                                      Bibliothèques pour accéder aux API de services tiers. Voir également la liste des wrappers et bibliothèques d'API Python.