


Introduction détaillée au stockage clairsemé et à la conversion des matrices clairsemées Python
Cet article présente principalement Python des informations relatives au stockage et à la conversion à matrice clairsemée. Les amis dans le besoin peuvent se référer à
Sparse Matrix-sparsep
from scipy import sparse
La forme de stockage des matrices clairsemées
De nombreuses grandes matrices apparaissent souvent lors de la résolution de modèles linéaires dans les domaines de la science et de l'ingénierie. Ces matrices sont pour la plupart. les éléments sont 0, c'est ce qu'on appelle une matrice clairsemée. Utiliser le ndarray array de NumPy pour enregistrer une telle matrice gaspillera de la mémoire. En raison de la nature clairsemée de la matrice, vous pouvez économiser l'utilisation de la mémoire en enregistrant uniquement les informations pertinentes sur les éléments non nuls. De plus, écrire l'opération fonction pour cette structure particulière de la matrice peut également améliorer la vitesse de calcul de la matrice.
La bibliothèque scipy.sparse fournit plusieurs formats pour représenter des matrices clairsemées, chaque format a des utilisations différentes, parmi lesquelles dok_matrix et lil_matrix conviennent pour ajouter progressivement des éléments.
dok_matrix hérite de dict, qui utilise un dictionnaire pour sauvegarder les éléments qui ne sont pas à 0 dans la matrice : la clé du dictionnaire est un tuple qui sauvegarde l'élément (ligne, colonne) informations, et sa valeur correspondante est la valeur de l'élément situé dans (ligne, colonne) dans la matrice. Évidemment, la matrice clairsemée au format dictionnaire est très adaptée aux opérations d'addition, suppression et d'accès d'éléments uniques. Habituellement utilisé pour ajouter progressivement des éléments non nuls, puis convertir vers d'autres formats prenant en charge les opérations rapides.
a = sparse.dok_matrix((10, 5)) a[2:5, 3] = 1.0, 2.0, 3.0 print a.keys() print a.values()
[(2, 3), (3, 3), (4, 3)] [1.0, 2.0, 3.0]
lil_matrix utilise deux listes pour stocker des éléments non nuls. data stocke les éléments non nuls dans chaque ligne et rows stocke les colonnes dans lesquelles se trouvent les éléments non nuls. Ce format est également idéal pour ajouter des éléments un par un et récupérer rapidement les données liées aux lignes.
b = sparse.lil_matrix((10, 5)) b[2, 3] = 1.0 b[3, 4] = 2.0 b[3, 2] = 3.0 print b.data print b.rows
[[] [] [1.0] [3.0, 2.0] [] [] [] [] [] []] [[] [] [3] [2, 4] [] [] [] [] [] []]
coo_matrix utilise trois tableaux row, col et data pour stocker les informations des éléments non nuls. Les trois tableaux ont la même longueur, row contient la ligne d'éléments, col contient la colonne d'éléments et data contient la valeur de l'élément. coo_matrix ne prend pas en charge l'accès, l'ajout et la suppression d'éléments. Une fois créé, il est presque impossible d'effectuer des opérations ou des opérations matricielles dessus, à l'exception de sa conversion en matrice dans d'autres formats.
coo_matrix prend en charge les éléments répétés, c'est-à-dire que les mêmes coordonnées de ligne et de colonne peuvent apparaître plusieurs fois. Lorsqu'elles sont converties en matrice dans d'autres formats, plusieurs valeurs correspondant aux mêmes coordonnées de ligne et de colonne seront additionnées. Dans l'exemple ci-dessous, (2, 3) correspond à deux valeurs : 1 et 10. Lors de sa conversion en tableau ndarray, ces deux valeurs s'additionnent, donc la valeur aux coordonnées de (2, 3) dans la matrice finale est 11 .
De nombreuses données matricielles clairsemées sont enregistrées dans des fichiers dans ce format. Par exemple, un fichier CSV peut avoir trois colonnes : "ID utilisateur, ID produit, valeur d'évaluation". Après avoir lu les données à l'aide de numpy.loadtxt ou pandas.read_csv, elles peuvent être rapidement converties en une matrice clairsemée via coo_matrix : chaque ligne de la matrice correspond à un utilisateur, chaque colonne correspond à un produit et la valeur de l'élément est l'évaluation de l'utilisateur. du produit.
row = [2, 3, 3, 2] col = [3, 4, 2, 3] data = [1, 2, 3, 10] c = sparse.coo_matrix((data, (row, col)), shape=(5, 6)) print c.col, c.row, c.data print c.toarray()
[3 4 2 3] [2 3 3 2] [ 1 2 3 10] [[ 0 0 0 0 0 0] [ 0 0 0 0 0 0] [ 0 0 0 11 0 0] [ 0 0 3 0 2 0] [ 0 0 0 0 0 0]]
Choisissez parmi les opérations personnelles, coo_matrix est choisi car il implique des opérations matricielles clairsemées, mais s'il n'est pas stocké sous d'autres formes, la complexité est trop élevée (temps et espace). Une matrice de 1000*1000 prend environ 2 heures, également fatale. Je n'avais pas d'autre choix que de penser aux triplets de format de saisie des données dans le logiciel Pajek :
J'ai donc pensé à traiter mes propres données en triplets similaires !
C'est-à-dire "matrice"—>"tuple triple"—>"sparseMatrix2tuple"—>"scipy.sparse"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL a une version communautaire gratuite et une version d'entreprise payante. La version communautaire peut être utilisée et modifiée gratuitement, mais le support est limité et convient aux applications avec des exigences de stabilité faibles et des capacités techniques solides. L'Enterprise Edition fournit une prise en charge commerciale complète pour les applications qui nécessitent une base de données stable, fiable et haute performance et disposées à payer pour le soutien. Les facteurs pris en compte lors du choix d'une version comprennent la criticité des applications, la budgétisation et les compétences techniques. Il n'y a pas d'option parfaite, seulement l'option la plus appropriée, et vous devez choisir soigneusement en fonction de la situation spécifique.

HaDIDB: Une base de données Python évolutive de haut niveau légère HaDIDB (HaDIDB) est une base de données légère écrite en Python, avec un niveau élevé d'évolutivité. Installez HaDIDB à l'aide de l'installation PIP: PiPinStallHaDIDB User Management Créer un utilisateur: CreateUser () pour créer un nouvel utilisateur. La méthode Authentication () authentifie l'identité de l'utilisateur. FromHadidb.OperationMportUserUser_OBJ = User ("Admin", "Admin") User_OBJ.

Il est impossible de visualiser le mot de passe MongoDB directement via NAVICAT car il est stocké sous forme de valeurs de hachage. Comment récupérer les mots de passe perdus: 1. Réinitialiser les mots de passe; 2. Vérifiez les fichiers de configuration (peut contenir des valeurs de hachage); 3. Vérifiez les codes (May Code Hardcode).

MySQL peut s'exécuter sans connexions réseau pour le stockage et la gestion des données de base. Cependant, la connexion réseau est requise pour l'interaction avec d'autres systèmes, l'accès à distance ou l'utilisation de fonctionnalités avancées telles que la réplication et le clustering. De plus, les mesures de sécurité (telles que les pare-feu), l'optimisation des performances (choisissez la bonne connexion réseau) et la sauvegarde des données sont essentielles pour se connecter à Internet.

La connexion MySQL peut être due aux raisons suivantes: le service MySQL n'est pas démarré, le pare-feu intercepte la connexion, le numéro de port est incorrect, le nom d'utilisateur ou le mot de passe est incorrect, l'adresse d'écoute dans my.cnf est mal configurée, etc. 2. Ajustez les paramètres du pare-feu pour permettre à MySQL d'écouter le port 3306; 3. Confirmez que le numéro de port est cohérent avec le numéro de port réel; 4. Vérifiez si le nom d'utilisateur et le mot de passe sont corrects; 5. Assurez-vous que les paramètres d'adresse de liaison dans My.cnf sont corrects.

MySQL Workbench peut se connecter à MARIADB, à condition que la configuration soit correcte. Sélectionnez d'abord "MariADB" comme type de connecteur. Dans la configuration de la connexion, définissez correctement l'hôte, le port, l'utilisateur, le mot de passe et la base de données. Lorsque vous testez la connexion, vérifiez que le service MARIADB est démarré, si le nom d'utilisateur et le mot de passe sont corrects, si le numéro de port est correct, si le pare-feu autorise les connexions et si la base de données existe. Dans une utilisation avancée, utilisez la technologie de mise en commun des connexions pour optimiser les performances. Les erreurs courantes incluent des autorisations insuffisantes, des problèmes de connexion réseau, etc. Lors des erreurs de débogage, analysez soigneusement les informations d'erreur et utilisez des outils de débogage. L'optimisation de la configuration du réseau peut améliorer les performances

Guide d'optimisation des performances de la base de données MySQL dans les applications à forte intensité de ressources, la base de données MySQL joue un rôle crucial et est responsable de la gestion des transactions massives. Cependant, à mesure que l'échelle de l'application se développe, les goulots d'étranglement des performances de la base de données deviennent souvent une contrainte. Cet article explorera une série de stratégies efficaces d'optimisation des performances MySQL pour garantir que votre application reste efficace et réactive dans des charges élevées. Nous combinerons des cas réels pour expliquer les technologies clés approfondies telles que l'indexation, l'optimisation des requêtes, la conception de la base de données et la mise en cache. 1. La conception de l'architecture de la base de données et l'architecture optimisée de la base de données sont la pierre angulaire de l'optimisation des performances MySQL. Voici quelques principes de base: sélectionner le bon type de données et sélectionner le plus petit type de données qui répond aux besoins peut non seulement économiser un espace de stockage, mais également améliorer la vitesse de traitement des données.

En tant que professionnel des données, vous devez traiter de grandes quantités de données provenant de diverses sources. Cela peut poser des défis à la gestion et à l'analyse des données. Heureusement, deux services AWS peuvent aider: AWS Glue et Amazon Athena.
