IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Erreur : in concatenate ValueError: all the input arrays must have same number of dimensions


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 6
    Par défaut Erreur : in concatenate ValueError: all the input arrays must have same number of dimensions
    Bonjour, je ne suis pas un expert sur python et donc en essayant mon code, cela me dit qu'il y a une erreur, et je ne comprend pas mon erreur. Pouvez vous m'expliquez mon erreur ?
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    from random import random
    import numpy as np
    from math import*
    import matplotlib as plt
    from scipy.integrate import odeint
    import numpy.random as rnd
     
    Xmax=4
    Xmin=1
    N=5
    A=2000
    B=0.08
    r=0.2
    K=120000
    V=1
    tau=0.5
    m=80
    X0=rnd.random((2*N))*(Xmax-Xmin)+Xmin
    V0=rnd.random(2*N)
    Y0=np.concatenate((X0,V0))
    Z=[5,2]
    temps=np.linspace(0,100,1000)
     
    def vec(a,b):
    	return b-a
     
    def ps(u,v):
    	return np.inner(u,v)
     
    def norme(v):
    	return sqrt(ps(v,v))
     
    def unitaire(v):
    	return (1/norme(v))*v
     
    def dir (A,B):
    	return unitaire(vec(A,B))
     
    def g(x):
    	if x>0:
    		return 0
    	else :
    		return x
     
     
     
    def f(i,j):
    	if i==j :
    		return 0
    	else :
    		h=norme(vec(i,j))
    		D=h-2*r
    	return (A*exp(-D/B)+K*g(D))*dir(i,j)
     
    def fw(i,k):
    	h=norme(vec(i,k))
    	D=h-r
    	return (A*exp(-D/B)+K*g(D))*dir(i,k)
     
    def S(i):
    	C,E=0,0
    	for k in range(2*N):
    		C=C+fw(X0[i],k)
    	for j in range(2*N):
    		E=E+f(X0[i],X0[j])
    	return m*(V-V0[i])*dir(X0[i],Z)+C+E
     
    def F(Y,t):
    	X=Y[0:2*N]
    	V=Y[2*N:4*N]
    	X1=V
    	V1=[]
    	for i in range (2*N):
    		V1=V1+[(1/m)*S(i)]
    	return np.concatenate((X1,V1))
     
    Y1=odeint(F,Y0,temps)
    plt.plot(temps,Y)
    plt.show()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par Zakkka Voir le message
    cela me dit qu'il y a une erreur, et je ne comprend pas mon erreur. Pouvez vous m'expliquez mon erreur ?
    S'il faut traduire le message d'erreur, ne pensez vous pas qu'il serait intéressant de le poster?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 6
    Par défaut
    Voici le log que j'ai eu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Traceback (most recent call last):
      File "/storage/emulated/0/Documents/Tipe/tipe.py", line 77, in <module>
        Y1=odeint(F,Y0,temps)
      File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/scipy/integrate/odepack.py", line 241, in odeint
        output = _odepack.odeint(func, y0, t, args, Dfun, col_deriv, ml, mu,
      File "/storage/emulated/0/Documents/Tipe/tipe.py", line 75, in F
        return np.concatenate((X1,V1))
      File "<__array_function__ internals>", line 5, in concatenate
    ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 1 dimension(s) and the array at index 1 has 2 dimension(s)

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    in concatenate
    ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 1 dimension(s) and the array at index 1 has 2 dimension(s)
    Le message d'erreur est clair... vous ne pouvez concaténer que des tableaux qui ont le même nombre de dimensions.
    Après corriger l'erreur dépend de ce que vous cherchiez à faire... et pourquoi. C'est pas en lisant le code qu'on le saura... donc impossible à corriger "intelligemment".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 6
    Par défaut
    Merci de ta réponse, mais je n'arrive à comprendre à comment faire pour que V1 ait la même dimension que X1, il y a t-il un moyen pour que en gardant à peu près la même formule, V1 ait la même dimension que X1 ?
    J'ai essayé d'utiliser V1.append(formule) et/ou à la fin quand je concatène j'utilise np.array(V1) mais toujours la même erreur.
    Je vais continuer (même si je ne suis pas doué) à chercher une solution et si vous trouviez une piste, pourriez-vous me l'indiquez ?

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 6
    Par défaut
    Et aussi si j'ai bien compris, c'est V1 qui est de dimension 2 or un tableau de dimension 2 devrait resembler à quelque chose comme ça [[1,2],[3,4]] or je comprend pas comment V1 est un tableau de dimension 2

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par Zakkka Voir le message
    je comprend pas comment V1 est un tableau de dimension 2
    C'est vous qui avez écrit ce code...

    Au départ V1 est une liste à laquelle est ajouté un tableau numpy à chaque itération.
    Et une liste de tableaux, ça fait bien un objet à plus d'une dimension.

    Si ce n'est pas ce que vous voulez, il faut faire autre chose: quoi je l'ignore car je ne vois pas l'intérêt de ce que vous faites - le pourquoi mentionné précédemment.

    note: la fonction "print" est très utile pour voir à quoi ressemblent les variables et devrait vous permettre de "voir" ce qu'il en est.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 6
    Par défaut
    Merci de votre réponse, mon but premier était de résoudre une equa-diff suivant les recherche de force sociale de Dirk Helbing, en effet je travaille sur le mouvement de foule pour un projet.
    J'ai pu au final avoir un résultat en bidouillant quelque petit truc mais ce n'était pas un résultat escompter. Je vais essayer d'améliorer le programme.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 6
    Par défaut
    Et aussi comme je suis nouveau sur python, il y a certaines résultat que je comprend pas très bien (même si c'est moi qui ait fait le code ...) mais bon l'essentielle est d'apprendre et essayer de ne plus refaire les même erreur en essayant de les bien comprendre

Discussions similaires

  1. [MySQL] demande d'aide pour mon code php
    Par Ingénieur 99 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 18/07/2018, 13h29
  2. [Toutes versions] Besoin d'aide pour mon code
    Par YannQMRX dans le forum VBA Outlook
    Réponses: 3
    Dernier message: 29/06/2017, 12h39
  3. [Débutant] Besoin d'aide pour mon code C# (DataGrid vide)
    Par katsenkatorz dans le forum C#
    Réponses: 3
    Dernier message: 27/05/2014, 14h24
  4. Petite aide pour mon code javascript
    Par bennji dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/12/2008, 19h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo