Matrice 24x24

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

  1. Modérateur
    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
    1. 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
      1. Contributeur
        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
    2. Contributeur
      bonjour,
      le fichier est-il exactement comme tu le montres, ou bien y as-tu ajouté des lignes pour expliquer?
      0
      1. J'ai ajouté des ligne pour expliquer.
        0
    3. Modérateur
      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
      1. 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