Accueil » Python » Forums Python » Forum général Python » numpy et abaqus

 • numpy et abaqus

Document Actions
Réponses: 1   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

 • numpy et abaqus

Posté par le_voisin le 24/07/2008 10:21
Bonjour,

je travaille sur Abaqus (code Elements Finis) et je code des script Python pour faire du post processing sur les fichiers resultats issus de Abaqus.
J'ai installé Numpy afin de pouvoir utiliser des fonctions telles que l'inversion de matrices, et je voudrais pouvoir utiliser les modules avec mes script Python.
Alors, j'arrive bien à importer mes modules (from linalg import * par exemple), mais quand je lance une fonction inclue dans linalg, il me dit :
>>> inv(a)
NameError: There is no variable named 'inv'

Alors que quand je tape :

>>> dir(linalg)
['__builtins__', '__doc__', '__file__', '__name__', '__path__', 'info']

>>> linalg.__doc__
'Core Linear Algebra Tools\012-------------------------\012Linear algebra basics:\012\012- norm Vector or matrix norm\012- inv Inverse of a square matrix\012- solve Solve a linear system of equations\012- det Determinant of a square matrix\012- lstsq Solve linear least-squares problem\012- pinv Pseudo-inverse (Moore-Penrose) calculated using a singular\012 value decomposition\012- matrix_power Integer power of a square matrix\012\012Eigenvalues and decompositions:\012\012- eig Eigenvalues and vectors of a square matrix\012- eigh Eigenvalues and eigenvectors of a Hermitian matrix\012- eigvals Eigenvalues of a square matrix\012- eigvalsh Eigenvalues of a Hermitian matrix\012- qr QR decomposition of a matrix\012- svd Singular value decomposition of a matrix\012- cholesky Cholesky decomposition of a matrix\012\012Tensor operations:\012\012- tensorsolve Solve a linear tensor equation\012- tensorinv Calculate an inverse of a tensor\012\012Exceptions:\012\012- LinAlgError Indicates a failed linear algebra operation\012\012'

il m'indique bien qu'il y a une fonction 'inv' pour inverse une mtrice carrée....

Quelqu'un aurait il une explication ?

Merci.

Bonne journée.

 • Re: numpy et abaqus

Posté par juno le 27/07/2008 18:20
Ceci fonctionne avec :
Python 2.6b2+ (trunk:65153M, Jul 20 2008, 11:55:05)
Numpy 1.1.0

>>> import numpy
>>> m = numpy.matrix([1,2,3,4])
>>> m = m.reshape(2,2)
>>> print m
[[1 2]
[3 4]]
>>> print numpy.linalg.inv(m)
[[-2. 1. ]
[1.5 -0.5]]
>>>
>>> numpy.linalg.inv
<function inv at 0xb6d0133c>

En général je n'importe pas les modules par "from <module> import *" car même si l'écriture du code peut devenir lourde, j'aime bien savoir de quel module proviennent les fonctions appelées.

Essaie les quelques lignes ci-dessus au moins pour voir.
Je pense que le problème est la résolution de nom du module. Ce qui me surprend c'est que l'instruction "from linalg import *" fonctionne. J'obtiens une erreur, il faut que j'écrive : "from numpy.linalg import *"
Ensuite la fonction inv est reconnue puisque dans l'espace de noms.