Path: ...!news.mixmin.net!aioe.org!pasdenom.info!from-devjntp Message-ID: <-0ZyBxt0rp0yP7ypjMXF40KjGVM@jntp> JNTP-Route: news2.nemoweb.net JNTP-DataType: Article Subject: Re: Projet Python : importation d'un dossier csv sous forme de matrice References: Newsgroups: fr.comp.lang.python JNTP-HashClient: Wr2Uy7d6JbWe_t65tzEyizUHI44 JNTP-ThreadID: l96dnV9hCoG-A2_8nZ2dnUU7_83NnZ2d@giganews.com JNTP-ReferenceUserID: 21@news2.nemoweb.net JNTP-Uri: http://news2.nemoweb.net/?DataID=-0ZyBxt0rp0yP7ypjMXF40KjGVM@jntp User-Agent: Nemo/0.999a JNTP-OriginServer: news2.nemoweb.net Date: Thu, 27 Jan 22 21:41:36 +0000 Organization: Nemoweb JNTP-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0 Injection-Info: news2.nemoweb.net; posting-host="7caad0357d5ed9131e9536f140c760d515f0a827"; logging-data="2022-01-27T21:41:36Z/6551166"; posting-account="21@news2.nemoweb.net"; mail-complaints-to="newsmaster@news2.nemoweb.net" JNTP-ProtocolVersion: 0.21.1 JNTP-Server: PhpNemoServer/0.94.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-JNTP-JsonNewsGateway: 0.96 From: K. Bytes: 3569 Lines: 55 Le 27/01/2022 à 22:30, K. a écrit : > Le 27/01/2022 à 14:29, Mand1n3 a écrit : >> Bonjour, >> Je suis actuellement en classe préparatoire et, en vu du passage du concours >> d'entrée aux Grandes Écoles, je dois réaliser un projet d'informatique. >> J'ai choisi de travailler sur le cryptage selon la méthode de Playfair et je >> m'attaque désormais au décryptage. Pour cela je compte raisonner par analyse >> de >> fréquence de digrammes. >> Je comptais donc créer une matrice 25x25 des fréquences de digrammes dans la >> langue française mais impossible de parvenir à importer le fichier et à le >> modifier pour le mettre sous cette forme. Le fichier est sous format CSV et sous >> la forme suivante: >> >> - au sein d'une ligne, les nombres sont séparés par des espaces >> -les colonnes sont quant à elles séparés par des point-virgules >> >> Le but était par la suite de créer une seconde matrice dans laquelle se >> trouverait les comptages des digrammes dans un texte (déjà encodé) et >> d'ensuite >> diviser chacun des termes par le nombre total de digrammes dans ce même texte. >> J'aurais ensuite comparé les fréquences des deux matrices pour essayer de >> déchiffrer les lettres codées en analysant quelles fréquences sont plus >> semblables. >> >> Merci beaucoup pour votre réponse. > > import csv > > with open('testfile.csv', newline='') as csvfile: > data = list(csv.reader(csvfile)) > > print(data) > > D'après https://stackoverflow.com/a/46614787 . > > Il doit être possible de changer les délimitateurs, par exemple en le > précisant dans l'instruction de lecture du data. > > data = list(csv.reader(csvfile, delimiter='\t')) > > Ici c'est une tabulation ('\t') mais ça doit marcher avec ';'. Précision, s'il faut ensuite le résultat sous forme de tableau (matrice), NumPy doit pouvoir le faire : import numpy as np arr = np.array(data) Et ensuite un reshape pour mettre au format voulu. Ou la solution avec pandas comme indiqué dans le fil Stack Overflow qui transpose directement le csv en tableau NumPy : import pandas as pd data = pd.read_csv(FILE).values