Matrice 24x24

timmboy -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Quelqu'un pourrait m'aider a faire un programme en python qui lit une matrice (3x8)x(24) et retourne une nouvelle matrice de 24x24 ?

       1       1       24 
a1.1 a1.2 a1.3
4.72E+04 -1.29E+02 -1.61E+01
a1.4
1.28E-01 -4.75E+04 1.64E+04
-4.71E+04 5.99E+01 1.03E+01
1.26E-01 -4.65E+04 -1.36E+04
-5.60E+01 2.28E+01 -1.71E+01
2.01E+02 -1.45E-02 -6.24E+02
-4.95E+01 4.58E+01 2.29E+01
a1.24
-1.25E+02 -1.27E-02 -3.85E+02
2 1 24
a2.1 a2.2 a2.3
-1.29E+02 1.34E+03 4.45E+01
3.86E+01 -1.46E+02 4.72E+02
5.99E+01 -1.24E+03 4.98E+00
3.86E+01 -4.75E+02 -1.48E+03
-7.98E+02 -5.59E+01 -1.21E+01
-4.91E+02 -1.12E+00 1.39E+03
8.66E+02 -4.95E+01 -3.74E+01
a2.24
5.13E+02 -1.12E+00 1.46E+03
3 1 24
-1.61E+01 4.45E+01 1.34E+05
-5.98E+00 9.29E+01 -1.61E+02
-9.92E+00 -4.57E+00 -1.34E+05
5.91E+00 -1.11E+02 -2.20E+02
-1.18E+01 -1.71E+01 4.19E+00
-2.00E+02 -3.32E-02 5.70E+02
3.78E+01 -2.28E+01 -5.66E+00
1.81E+02 -3.37E-02 5.11E+02
4 1 24
1.28E-01 3.86E+01 -5.98E+00
8.08E+01 4.16E-01 -1.31E+00
-1.26E-01 -3.86E+01 5.91E+00
-1.41E-02 4.22E-01 1.33E+00
1.12E+00 1.45E-02 3.38E-02
-3.66E-02 1.52E-03 1.17E-01
-1.12E+00 -1.26E-02 3.31E-02
-5.32E-02 1.52E-03 -1.65E-01
5 1 24
-4.75E+04 -1.46E+02 9.29E+01
4.16E-01 1.18E+06 -3.59E+04
4.65E+04 4.73E+02 -1.12E+02
4.18E-01 -1.08E+06 -2.82E+03
4.91E+02 -2.01E+02 2.00E+02
-6.48E+02 -3.71E-02 2.00E+03
5.14E+02 -1.25E+02 -1.81E+02
8.98E+02 -5.43E-02 2.78E+03
6 1 24
1.64E+04 4.72E+02 -1.61E+02
-1.31E+00 -3.59E+04 1.68E+05
-1.36E+04 -1.48E+03 2.21E+02
-1.33E+00 2.82E+03 -6.10E+04
-1.39E+03 6.24E+02 -5.70E+02
2.00E+03 1.17E-01 -6.16E+03
-1.46E+03 3.85E+02 5.10E+02
-2.79E+03 1.66E-01 -8.63E+03
7 1 24
-4.71E+04 5.99E+01 -9.92E+00
-1.26E-01 4.65E+04 -1.36E+04
4.72E+04 -1.29E+02 1.57E+01
-1.28E-01 4.75E+04 1.64E+04
-4.95E+01 4.58E+01 -2.29E+01
1.25E+02 1.27E-02 -3.85E+02
-5.60E+01 2.28E+01 1.71E+01
-2.01E+02 1.45E-02 -6.24E+02
8 1 24
5.99E+01 -1.24E+03 -4.57E+00
-3.86E+01 4.73E+02 -1.48E+03
-1.29E+02 1.34E+03 -4.49E+01
-3.86E+01 1.49E+02 4.72E+02
8.66E+02 -4.95E+01 3.82E+01
-5.13E+02 1.12E+00 1.46E+03
-7.98E+02 -5.59E+01 1.13E+01
4.92E+02 1.12E+00 1.39E+03
9 1 24
1.03E+01 4.98E+00 -1.34E+05
5.91E+00 -1.12E+02 2.21E+02
1.57E+01 -4.49E+01 1.34E+05
-5.98E+00 9.18E+01 1.60E+02
-3.77E+01 2.29E+01 -5.70E+00
1.81E+02 -3.36E-02 -5.10E+02
1.18E+01 1.71E+01 4.20E+00
-2.00E+02 -3.32E-02 -5.70E+02
10 1 24
1.26E-01 3.86E+01 5.91E+00
-1.41E-02 4.18E-01 -1.33E+00
-1.28E-01 -3.86E+01 -5.98E+00
8.08E+01 4.20E-01 1.31E+00
1.12E+00 1.27E-02 3.42E-02
-5.38E-02 1.52E-03 1.65E-01
-1.12E+00 -1.45E-02 3.26E-02
-3.61E-02 1.52E-03 -1.17E-01
11 1 24
-4.65E+04 -4.75E+02 -1.11E+02
4.22E-01 -1.08E+06 2.82E+03
4.75E+04 1.49E+02 9.18E+01
4.20E-01 1.18E+06 3.59E+04
-5.12E+02 1.25E+02 -1.81E+02
8.98E+02 -5.25E-02 -2.78E+03
-4.92E+02 2.01E+02 2.00E+02
-6.48E+02 -3.53E-02 -2.00E+03
12 1 24
-1.36E+04 -1.48E+03 -2.20E+02
1.33E+00 -2.82E+03 -6.10E+04
1.64E+04 4.72E+02 1.60E+02
1.31E+00 3.59E+04 1.68E+05
-1.46E+03 3.86E+02 -5.11E+02
2.79E+03 -1.65E-01 -8.63E+03
-1.39E+03 6.24E+02 5.70E+02
-2.00E+03 -1.17E-01 -6.16E+03
13 1 24
-5.60E+01 -7.98E+02 -1.18E+01
1.12E+00 4.91E+02 -1.39E+03
-4.95E+01 8.66E+02 -3.77E+01
1.12E+00 -5.12E+02 -1.46E+03
1.34E+03 -1.28E+02 4.54E+01
1.47E+02 -3.86E+01 -4.72E+02
-1.24E+03 5.98E+01 4.08E+00
4.74E+02 -3.86E+01 1.48E+03
14 1 24
2.28E+01 -5.59E+01 -1.71E+01
1.45E-02 -2.01E+02 6.24E+02
4.58E+01 -4.95E+01 2.29E+01
1.27E-02 1.25E+02 3.86E+02
-1.28E+02 4.72E+04 -1.59E+01
4.75E+04 -1.28E-01 -1.64E+04
5.98E+01 -4.71E+04 1.02E+01
4.65E+04 -1.26E-01 1.36E+04
15 1 24
-1.71E+01 -1.21E+01 4.19E+00
3.38E-02 2.00E+02 -5.70E+02
-2.29E+01 3.82E+01 -5.70E+00
3.42E-02 -1.81E+02 -5.11E+02
4.54E+01 -1.59E+01 1.34E+05
-8.14E+01 5.98E+00 1.62E+02
-5.45E+00 -1.01E+01 -1.34E+05
1.01E+02 -5.91E+00 2.23E+02
16 1 24
2.01E+02 -4.91E+02 -2.00E+02
-3.66E-02 -6.48E+02 2.00E+03
1.25E+02 -5.13E+02 1.81E+02
-5.38E-02 8.98E+02 2.79E+03
1.47E+02 4.75E+04 -8.14E+01
1.18E+06 4.17E-01 -3.59E+04
-4.74E+02 -4.65E+04 1.00E+02
-1.08E+06 4.20E-01 -2.82E+03
17 1 24
-1.45E-02 -1.12E+00 -3.32E-02
1.52E-03 -3.71E-02 1.17E-01
1.27E-02 1.12E+00 -3.36E-02
1.52E-03 -5.25E-02 -1.65E-01
-3.86E+01 -1.28E-01 5.98E+00
4.17E-01 8.08E+01 -1.31E+00
3.86E+01 1.26E-01 -5.91E+00
4.21E-01 -1.41E-02 1.33E+00
18 1 24
-6.24E+02 1.39E+03 5.70E+02
1.17E-01 2.00E+03 -6.16E+03
-3.85E+02 1.46E+03 -5.10E+02
1.65E-01 -2.78E+03 -8.63E+03
-4.72E+02 -1.64E+04 1.62E+02
-3.59E+04 -1.31E+00 1.68E+05
1.48E+03 1.36E+04 -2.22E+02
2.82E+03 -1.33E+00 -6.10E+04
19 1 24
-4.95E+01 8.66E+02 3.78E+01
-1.12E+00 5.14E+02 -1.46E+03
-5.60E+01 -7.98E+02 1.18E+01
-1.12E+00 -4.92E+02 -1.39E+03
-1.24E+03 5.98E+01 -5.45E+00
-4.74E+02 3.86E+01 1.48E+03
1.34E+03 -1.28E+02 -4.41E+01
-1.48E+02 3.86E+01 -4.72E+02
20 1 24
4.58E+01 -4.95E+01 -2.28E+01
-1.26E-02 -1.25E+02 3.85E+02
2.28E+01 -5.59E+01 1.71E+01
-1.45E-02 2.01E+02 6.24E+02
5.98E+01 -4.71E+04 -1.01E+01
-4.65E+04 1.26E-01 1.36E+04
-1.28E+02 4.72E+04 1.59E+01
-4.75E+04 1.28E-01 -1.64E+04
21 1 24
2.29E+01 -3.74E+01 -5.66E+00
3.31E-02 -1.81E+02 5.10E+02
1.71E+01 1.13E+01 4.20E+00
3.26E-02 2.00E+02 5.70E+02
4.08E+00 1.02E+01 -1.34E+05
1.00E+02 -5.91E+00 -2.22E+02
-4.41E+01 1.59E+01 1.34E+05
-8.17E+01 5.98E+00 -1.63E+02
22 1 24
-1.25E+02 5.13E+02 1.81E+02
-5.32E-02 8.98E+02 -2.79E+03
-2.01E+02 4.92E+02 -2.00E+02
-3.61E-02 -6.48E+02 -2.00E+03
4.74E+02 4.65E+04 1.01E+02
-1.08E+06 4.21E-01 2.82E+03
-1.48E+02 -4.75E+04 -8.17E+01
1.18E+06 4.18E-01 3.59E+04
23 1 24
-1.27E-02 -1.12E+00 -3.37E-02
1.52E-03 -5.43E-02 1.66E-01
1.45E-02 1.12E+00 -3.32E-02
1.52E-03 -3.53E-02 -1.17E-01
-3.86E+01 -1.26E-01 -5.91E+00
4.20E-01 -1.41E-02 -1.33E+00
3.86E+01 1.28E-01 5.98E+00
4.18E-01 8.08E+01 1.31E+00
24 1 24
-3.85E+02 1.46E+03 5.11E+02
-1.65E-01 2.78E+03 -8.63E+03
-6.24E+02 1.39E+03 -5.70E+02
-1.17E-01 -2.00E+03 -6.16E+03
1.48E+03 1.36E+04 2.23E+02
-2.82E+03 1.33E+00 -6.10E+04
-4.72E+02 -1.64E+04 -1.63E+02
a24.24
3.59E+04 1.31E+00 1.68E+05


Si quelqu'un a une idée merci de me l'envoyer

4 réponses

mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Bonjour,

Dans ce cas ce programme devrait faire l'affaire. Il combine :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import numpy as np

data = np.loadtxt("input.txt", dtype='f')
rows = tuple(8*i for i in range(24))
data = np.delete(data, rows, axis=0)
data = data.reshape((24, 24))
print(data)


Si tu le souhaites, tu peux ajouter aux différentes étapes du code les deux instructions suivantes :

print(data)
print(data.shape)


Cela te permettra de contrôler la taille de la matrice
data
et ce qu'elle stocke.

Note en particulier que
np.reshape
fournit différents ordres (paramètre
order
), car il existe plusieurs manières de convertir une matrice 216x3 en une matrice 24x24. Bref, j'ai pris l'ordre par défaut.

Bonne chance
1
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Bonjour,

En
numpy
, tu peux utiliser la fonction
reshape
. Par contre, je n'ai pas compris le format de ton fichier (notamment pourquoi par moment il est écrit aX.Y où X et Y sont deux entiers), donc je ne peux pas t'en dire plus si tu ne décris pas comment ces données doivent être lues.
0
timmboy
 
aX.Y
décrit comment la matrice doit être lue :

a1.1 a1.2 a1.3
a1.4 a1.5 a1.6

..............
a1.22 a1.23 a1.24
.
.
.
.
.
.
.
.

a24.1 a24.2 a24.3
a24.4 a24.5 a24.6

..............
a24.22 a24.23 a24.24
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
le fichier est-il exactement comme tu le montres, ou bien y as-tu ajouté des lignes pour expliquer?
0
timmboy
 
J'ai ajouté des ligne pour expliquer.
0
timmboy
 
Voila le fichier brut :
       1       1       24 
7.35E+02 -7.20E+01 2.72E+01
-8.13E+01 -3.86E+01 -2.82E+02
-6.82E+02 3.77E+01 -1.46E+01
2.39E+02 -3.86E+01 7.86E+02
-2.70E+01 -3.97E+02 6.71E+00
1.11E+00 4.88E+02 -7.06E+02
-2.57E+01 4.31E+02 -1.93E+01
1.11E+00 -4.90E+02 -7.19E+02
2 1 24
-7.20E+01 8.73E+04 -1.37E+01
4.41E+04 -1.47E-01 -8.73E+03
3.77E+01 -8.73E+04 1.20E+01
4.31E+04 -1.47E-01 7.30E+03
9.25E+00 -2.71E+01 -1.90E+01
1.42E-02 -1.70E+02 3.29E+02
2.51E+01 -2.57E+01 2.07E+01
1.38E-02 1.48E+02 1.75E+02
3 1 24
2.72E+01 -1.37E+01 2.64E+05
-1.34E+02 3.03E+00 1.81E+02
1.25E+01 -1.22E+01 -2.64E+05
1.37E+02 -2.99E+00 1.99E+02
-1.90E+01 5.95E+00 9.61E+00
1.86E-02 3.70E+02 -5.44E+02
-2.07E+01 1.99E+01 -9.82E+00
1.88E-02 -3.68E+02 -5.28E+02
4 1 24
-8.13E+01 4.41E+04 -1.34E+02
2.24E+06 2.07E-01 -2.33E+04
-2.37E+02 -4.31E+04 1.36E+02
-2.20E+06 2.10E-01 -1.45E+04
1.70E+02 -4.89E+02 -3.70E+02
-1.70E-02 -1.45E+03 2.22E+03
1.48E+02 -4.92E+02 3.68E+02
-2.55E-02 1.48E+03 2.44E+03
5 1 24
-3.86E+01 -1.47E-01 3.03E+00
2.07E-01 4.04E+01 -1.43E+00
3.86E+01 1.47E-01 -3.00E+00
2.15E-01 -2.53E-02 1.43E+00
-1.43E-02 -1.11E+00 -1.65E-02
2.99E-03 -1.97E-02 1.31E-01
1.38E-02 1.11E+00 -1.72E-02
2.99E-03 -2.07E-02 -1.43E-01
6 1 24
-2.82E+02 -8.73E+03 1.81E+02
-2.33E+04 -1.43E+00 8.55E+04
7.86E+02 7.30E+03 -1.98E+02
1.45E+04 -1.43E+00 -3.21E+04
-3.29E+02 7.06E+02 5.44E+02
1.31E-01 2.22E+03 -2.95E+03
-1.75E+02 7.19E+02 -5.27E+02
1.43E-01 -2.44E+03 -4.45E+03
7 1 24
-6.82E+02 3.77E+01 1.25E+01
-2.37E+02 3.86E+01 7.86E+02
7.35E+02 -7.20E+01 -2.51E+01
7.94E+01 3.86E+01 -2.82E+02
-2.57E+01 4.31E+02 1.91E+01
-1.11E+00 4.93E+02 -7.19E+02
-2.71E+01 -3.97E+02 -6.51E+00
-1.11E+00 -4.91E+02 -7.06E+02
8 1 24
3.77E+01 -8.73E+04 -1.22E+01
-4.31E+04 1.47E-01 7.30E+03
-7.20E+01 8.73E+04 1.39E+01
-4.41E+04 1.47E-01 -8.73E+03
2.51E+01 -2.56E+01 -2.06E+01
-1.38E-02 -1.48E+02 1.75E+02
9.23E+00 -2.70E+01 1.89E+01
-1.42E-02 1.70E+02 3.29E+02
9 1 24
-1.46E+01 1.20E+01 -2.64E+05
1.36E+02 -3.00E+00 -1.98E+02
-2.51E+01 1.39E+01 2.64E+05
-1.34E+02 3.02E+00 -1.83E+02
2.07E+01 -1.85E+01 -9.79E+00
1.52E-02 -3.68E+02 5.28E+02
1.90E+01 -7.30E+00 9.62E+00
1.49E-02 3.71E+02 5.45E+02
10 1 24
2.39E+02 4.31E+04 1.37E+02
-2.20E+06 2.15E-01 1.45E+04
7.94E+01 -4.41E+04 -1.34E+02
2.24E+06 2.12E-01 2.33E+04
-1.48E+02 4.91E+02 3.68E+02
-2.34E-02 1.48E+03 -2.44E+03
-1.71E+02 4.90E+02 -3.71E+02
-1.49E-02 -1.45E+03 -2.22E+03
11 1 24
-3.86E+01 -1.47E-01 -2.99E+00
2.10E-01 -2.53E-02 -1.43E+00
3.86E+01 1.47E-01 3.02E+00
2.12E-01 4.04E+01 1.43E+00
-1.38E-02 -1.11E+00 -1.68E-02
2.99E-03 -2.81E-02 1.43E-01
1.43E-02 1.11E+00 -1.70E-02
2.99E-03 -1.23E-02 -1.31E-01
12 1 24
7.86E+02 7.30E+03 1.99E+02
-1.45E+04 1.43E+00 -3.21E+04
-2.82E+02 -8.73E+03 -1.83E+02
2.33E+04 1.43E+00 8.55E+04
-1.75E+02 7.19E+02 5.28E+02
-1.43E-01 2.44E+03 -4.45E+03
-3.29E+02 7.06E+02 -5.45E+02
-1.31E-01 -2.22E+03 -2.95E+03
13 1 24
-2.70E+01 9.25E+00 -1.90E+01
1.70E+02 -1.43E-02 -3.29E+02
-2.57E+01 2.51E+01 2.07E+01
-1.48E+02 -1.38E-02 -1.75E+02
8.73E+04 -7.21E+01 -1.36E+01
1.47E-01 -4.41E+04 8.73E+03
-8.73E+04 3.78E+01 1.19E+01
1.47E-01 -4.31E+04 -7.30E+03
14 1 24
-3.97E+02 -2.71E+01 5.95E+00
-4.89E+02 -1.11E+00 7.06E+02
4.31E+02 -2.56E+01 -1.85E+01
4.91E+02 -1.11E+00 7.19E+02
-7.21E+01 7.35E+02 2.57E+01
3.86E+01 8.34E+01 2.82E+02
3.78E+01 -6.83E+02 -1.31E+01
3.86E+01 -2.41E+02 -7.86E+02
15 1 24
6.71E+00 -1.90E+01 9.61E+00
-3.70E+02 -1.65E-02 5.44E+02
1.91E+01 -2.06E+01 -9.79E+00
3.68E+02 -1.68E-02 5.28E+02
-1.36E+01 2.57E+01 2.64E+05
-3.03E+00 1.49E+02 -1.82E+02
-1.21E+01 1.40E+01 -2.64E+05
2.99E+00 -1.51E+02 -1.97E+02
16 1 24
1.11E+00 1.42E-02 1.86E-02
-1.70E-02 2.99E-03 1.31E-01
-1.11E+00 -1.38E-02 1.52E-02
-2.34E-02 2.99E-03 -1.43E-01
1.47E-01 3.86E+01 -3.03E+00
4.04E+01 2.02E-01 -1.43E+00
-1.47E-01 -3.86E+01 2.99E+00
-2.53E-02 2.20E-01 1.43E+00
17 1 24
4.88E+02 -1.70E+02 3.70E+02
-1.45E+03 -1.97E-02 2.22E+03
4.93E+02 -1.48E+02 -3.68E+02
1.48E+03 -2.81E-02 2.44E+03
-4.41E+04 8.34E+01 1.49E+02
2.02E-01 2.24E+06 -2.33E+04
4.31E+04 2.35E+02 -1.51E+02
2.04E-01 -2.20E+06 -1.45E+04
18 1 24
-7.06E+02 3.29E+02 -5.44E+02
2.22E+03 1.31E-01 -2.95E+03
-7.19E+02 1.75E+02 5.28E+02
-2.44E+03 1.43E-01 -4.45E+03
8.73E+03 2.82E+02 -1.82E+02
-1.43E+00 -2.33E+04 8.55E+04
-7.30E+03 -7.86E+02 1.99E+02
-1.43E+00 1.45E+04 -3.21E+04
19 1 24
-2.57E+01 2.51E+01 -2.07E+01
1.48E+02 1.38E-02 -1.75E+02
-2.71E+01 9.23E+00 1.90E+01
-1.71E+02 1.43E-02 -3.29E+02
-8.73E+04 3.78E+01 -1.21E+01
-1.47E-01 4.31E+04 -7.30E+03
8.73E+04 -7.21E+01 1.39E+01
-1.47E-01 4.41E+04 8.73E+03
20 1 24
4.31E+02 -2.57E+01 1.99E+01
-4.92E+02 1.11E+00 7.19E+02
-3.97E+02 -2.70E+01 -7.30E+00
4.90E+02 1.11E+00 7.06E+02
3.78E+01 -6.83E+02 1.40E+01
-3.86E+01 2.35E+02 -7.86E+02
-7.21E+01 7.35E+02 -2.66E+01
-3.86E+01 -7.74E+01 2.82E+02
21 1 24
-1.93E+01 2.07E+01 -9.82E+00
3.68E+02 -1.72E-02 -5.27E+02
-6.51E+00 1.89E+01 9.62E+00
-3.71E+02 -1.70E-02 -5.45E+02
1.19E+01 -1.31E+01 -2.64E+05
2.99E+00 -1.51E+02 1.99E+02
1.39E+01 -2.66E+01 2.64E+05
-3.03E+00 1.48E+02 1.80E+02
22 1 24
1.11E+00 1.38E-02 1.88E-02
-2.55E-02 2.99E-03 1.43E-01
-1.11E+00 -1.42E-02 1.49E-02
-1.49E-02 2.99E-03 -1.31E-01
1.47E-01 3.86E+01 2.99E+00
-2.53E-02 2.04E-01 -1.43E+00
-1.47E-01 -3.86E+01 -3.03E+00
4.04E+01 2.18E-01 1.43E+00
23 1 24
-4.90E+02 1.48E+02 -3.68E+02
1.48E+03 -2.07E-02 -2.44E+03
-4.91E+02 1.70E+02 3.71E+02
-1.45E+03 -1.23E-02 -2.22E+03
-4.31E+04 -2.41E+02 -1.51E+02
2.20E-01 -2.20E+06 1.45E+04
4.41E+04 -7.74E+01 1.48E+02
2.18E-01 2.24E+06 2.33E+04
24 1 24
-7.19E+02 1.75E+02 -5.28E+02
2.44E+03 -1.43E-01 -4.45E+03
-7.06E+02 3.29E+02 5.45E+02
-2.22E+03 -1.31E-01 -2.95E+03
-7.30E+03 -7.86E+02 -1.97E+02
1.43E+00 -1.45E+04 -3.21E+04
8.73E+03 2.82E+02 1.80E+02
1.43E+00 2.33E+04 8.55E+04
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
il suffit alors de faire une boucle de 24 tours
dans chaque boucle, sauter une ligne et lire trois nombres sur chacune des 8 lignes suivantes
enregistrer chaque nombre lu dans la matrice de destination en la remplissant, ligne par ligne, de gauche à droite
0