python est un langage très pratique pour analyser des données numériques, mais la première étape de l'analyse des données consiste à charger les données. Par conséquent, nous résumerons comment lire des données numériques dans différents formats sous la forme d'un tableau numpy.
Ci-dessous, dans tous les cas, le contenu du fichier est stocké dans 'data'.
filename.csv
year,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
2001,-0.4,-0.3,-0.2,-0.1,0,0,-0.1,-0.2,-0.3,-0.4,-0.5,-0.4
2002,-0.3,-0.1,0,0.3,0.4,0.5,0.6,0.7,0.8,1,1,1
2003,0.8,0.5,0,-0.2,-0.2,-0.2,-0.1,0.1,0.3,0.4,0.4,0.4
2004,0.4,0.3,0.1,0,-0.1,0,0,0.2,0.3,0.4,0.4,0.3
2005,0.2,0.1,0.1,0.1,0.2,0.3,0.2,0.1,-0.2,-0.5,-0.7,-0.8
2006,-0.8,-0.7,-0.5,-0.3,-0.2,0.1,0.3,0.4,0.6,0.8,0.9,0.8
2007,0.5,0.2,-0.2,-0.5,-0.6,-0.7,-0.9,-1.1,-1.3,-1.4,-1.5,-1.5
2008,-1.4,-1.1,-0.8,-0.5,-0.1,0.1,0.2,0.2,0.2,0,-0.2,-0.4
2009,-0.5,-0.5,-0.3,0,0.3,0.5,0.7,0.8,0.9,1,1,1.1
2010,1.1,0.9,0.7,0.3,0,-0.4,-0.8,-1.1,-1.3,-1.4,-1.5,-1.4
2011,-1.2,-0.9,-0.7,-0.4,-0.2,-0.2,-0.2,-0.4,-0.6,-0.8,-0.8,-0.7
2012,-0.6,-0.3,-0.1,0.1,0.3,0.4,0.5,0.5,0.4,0.2,0,-0.2
2013,-0.2,-0.3,-0.4,-0.4,-0.5,-0.6,-0.6,-0.5,-0.3,-0.2,-0.1,-0.2
2014,-0.2,-0.1,0,0.2,0.4,0.5,0.5,0.5,0.6,0.7,0.7,0.6
2015,0.5,0.5,0.6,0.8,1.2,99.9,99.9,99.9,99.9,99.9,99.9,99.9
Lisez les données textuelles affichées comme ci-dessus une fois ouvertes dans le Bloc-notes.
import numpy as np
data = np.loadtxt('filename.csv', comments='year', delimiter=',', dtype='float')
--Dans les commentaires, spécifiez la chaîne de caractères qui existe à l'extrémité gauche de la ligne à ignorer. --Spécifiez le délimiteur avec le délimiteur. S'ils sont séparés par un espace, le délimiteur de description = ... n'est pas nécessaire.
import netCDF4
nc = netCDF4.Dataset('filename.nc', 'r')
data = nc.variables['varname'][:]
write_binary_2D.f90
program main
implicit none
integer,parameter::N=10,M=20
integer::i,j
real,dimension(1:N,1:M)::x
open(10,file='filename.out',form='unformatted',access='direct',recl=N*4)
do i = 1,N
do j = 1,M
x(i,j) = i+j*2
end do
end do
do j = 1,M
write(10,rec=j)(x(i,j),i=1,N)
end do
close(10)
end program main
Lisez le contenu de filename.out (un binaire à virgule flottante de 4 octets sans en-tête peu tolandien, communément appelé format GrADS) créé par le programme ci-dessus.
import numpy as np
N = 10 #Le nombre de données stockées par numéro d'enregistrement.
M = 20 #Nombre total d'enregistrements.
f = open('filename.out', 'r')
dty = np.dtype([('data', '<' + str(N) + 'f')])
chunk = np.fromfile(f, dtype=dty, count=M)
data = np.array([chunk[j]['data'] for j in range(M)])
data = []
for j in range(M):
data.append(chunk[j]['data'])
data = np.array(data)
Est réécrit en une seule ligne.
--chunk [k-1] correspond aux données de l'enregistrement numéro k en fortran. Ainsi, par exemple, si vous souhaitez récupérer uniquement les données avec le numéro d'enregistrement 6, mettez la dernière ligne
data = chunk[5]['data']
Vous pouvez le remplacer par.
Recommended Posts