[Numpy/SciPy]Correlation de données depuis deux fichiers csv
Bonjour à tous !
Je ne connais pas très bien python, juste les bases, et j'aimerais m'en servir pour de l'analyse de données. Je vais tâcher d'être synthétique.
J'ai deux fichiers CSV avec une dizaine de colonnes séparées par des ";" et 50000 de lignes environ.
Je sais que les données de la colonne 2 (par exemple) sont à peu près corrélées mais déphasées. Donc j'essaie de récupérer le delta_t histoire de les afficher sur un graphique et les comparer par la suite.
Mon problème n'est pas ici, mais dans la récupération des données CSV pour les mettre dans un "array" utilisable par numpy.correlate().
Voici un extrait du code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
import os
from numpy import *
f1 = open('file1.csv', 'r')
f2 = open('file2.csv', 'r')
# file 1
reader = csv.reader(f1, delimiter=';', quoting=csv.QUOTE_NONE)
all_channel_f1 = zeros((100000), dtype=int)
i=0
for row in reader:
all_channel_f1[i]=row[2]
i = i+1
f1_nblines = reader.line_num
# file 2
reader = csv.reader(f2, delimiter=';', quoting=csv.QUOTE_NONE)
all_channel_f2 = zeros((100000), dtype=int)
i=0
for row in reader:
all_channel_f2[i]=row[2]
i = i+1
f2_nblines = reader.line_num
newsize = min(f1_nblines, f2_nblines)
all_channel_f1.resize(newsize)
all_channel_f2.resize(newsize)
print newsize
print all_channel_f1
print all_channel_f2
# correlate
xcorr = correlate(all_channel_f1,all_channel_f2)
print xcorr |
La sortie est la suivante :
Code:
1 2 3 4 5
|
48810
[11 11 11 ..., 10 12 11]
[12 11 12 ..., 11 11 11]
[4574130] |
La corrélation n'a pas fonctionné, car je me retrouve avec un seul nombre et je pense que c'est parce que le tableau n'est pas correctement créé, mais je n'en suis pas sûr.
Toute aide est la bienvenue !
Merci d'avance !