2009-11-23 8 views
2

bonjour tous, besoin de définir une fonction qui peut être divisée par une matrice de termes ou par des termes, dans le pire des cas, entre des tableaux de listes afin que vous obteniez le résultat dans une troisième matrice,terme par division division en python (division termino en termino en python)

Merci pour toute réponse

+4

Est-ce que toutes les réponses doivent aussi avoir une traduction en espagnol? v) –

Répondre

8

à moins que je suis malentendu, c'est là numpy peut être utilisé à bon escient:

>>> from numpy import * 
>>> a = array([[1,2,3],[4,5,6],[7,8,9]]) 
>>> b = array([[0.5] * 3, [0.5] * 3, [0.5] * 3]) 
>>> a/b 
array([[ 2., 4., 6.], 
     [ 8., 10., 12.], 
     [ 14., 16., 18.]]) 

cela fonctionne pour la multiplication aussi. Et en effet, comme l'a noté Mark, division scalaire (et la multiplication) est également possible:

>>> a/10.0 
array([[ 0.1, 0.2, 0.3], 
     [ 0.4, 0.5, 0.6], 
     [ 0.7, 0.8, 0.9]]) 
>>> a * 10 
array([[10, 20, 30], 
     [40, 50, 60], 
     [70, 80, 90]]) 

Modifier: pour être complet, pour les listes de listes vous pouvez effectuer les opérations suivantes:

>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 
>>> b = [[0.5] * 3, [0.5] * 3, [0.5] * 3] 
>>> def mat_div(a, b): 
...  return [[n/d for n, d in zip(ra, rb)] for ra, rb in zip(a, b)] 
... 
>>> mat_div(a, b) 
[[2.0, 4.0, 6.0], [8.0, 10.0, 12.0], [14.0, 16.0, 18.0]] 
+0

et si vous avez les mêmes dimensions qu'un - p. b = a * 10 vous pouvez également faire b/a etc. Je pense que la combinaison de matrice est ce que le PO demande – Mark

+0

comment vérifiez-vous pour la division zéro? – hAlE