2017-03-24 4 views
1

下記の問題を解決するPythonコードを書きたいと思います。別の配列の要素で行列を正規化するか?

IはリストのAAリストを有する:

A = [[10, 20, 30], [15, 30, 25], [12, 30, 6]] 

およびIは、数のリストを持っている:

B = [2, 5, 6] 

Iは、リストBを反復処理によって、リストAの各列を分割したいです例えばB. からの要素:

[10, 20, 30]/B[1] 
[15, 30, 25]/B[2] 
[12, 30, 6]/B[3] 

とget出力のように:

ループの使用がこれを行うかどうかはわかりません。私は正しい結果を得られなかったので。

解決方法を知りたいと考えていますか?

+0

あなたが試してみましたまだ何か? – bfontaine

答えて

0

あなたは、単純なネストされたリスト内包表記を使用することができますnumpyので

>>> A = [[10, 20, 30], [15, 30, 25], [12, 30, 6]] 
>>> B = [2, 5, 6] 
>>> [[e/b for e in a] for a,b in zip(A,B)] 
[[5.0, 10.0, 15.0], [3.0, 6.0, 5.0], [2.0, 5.0, 1.0]] 
>>> 
1

あなたはそれを次のような単純な操作を行うことができます。

A/B[:, None] 

デモ:

In [60]: A 
Out[60]: 
array([[10, 20, 30], 
     [15, 30, 25], 
     [12, 30, 6]]) 

In [61]: B 
Out[61]: array([2, 5, 6]) 

In [63]: A/B[:, None] 
Out[63]: 
array([[ 5., 10., 15.], 
     [ 3., 6., 5.], 
     [ 2., 5., 1.]]) 
+0

ありがとうございました。それは完全に動作します。 –

+0

@ yas.fもしそれがうまくいくならば、答えを受け入れることでコミュニティにこれを伝えることができます。 ;) – Kasramvd

関連する問題