:
おそらく
map
よりも高速だし、すべての
lambda
機能を回避
>>> from __future__ import division # for python-2.x compatibility
>>> [[item/10 for item in subl] for subl in a]
[[0.2, 0.3, 0.4], [0.9, 0.1, 0.2]]
。
10の代わりに、ネストされた2dリストのすべての値の合計を使用したいとしたらどうなりますか?
sum
を使用して合計し、ネストされたジェネレータ式計算:
>>> sum_ = sum(item for subl in a for item in subl)
>>> [[item/sum_ for item in subl] for subl in a]
[[0.09523809523809523, 0.14285714285714285, 0.19047619047619047],
[0.42857142857142855, 0.047619047619047616, 0.09523809523809523]]
しかし、それはさらに簡単ですnumpyのアレイとを。 numpyのサードパーティ製のパッケージが、非常に強力かつ高速:
>>> import numpy as np
>>> arr = np.array(a)
>>> arr/10. # element-wise division
array([[ 0.2, 0.3, 0.4],
[ 0.9, 0.1, 0.2]])
>>> arr/arr.sum() # sum over all elements then element-wise division
array([[ 0.0952381 , 0.14285714, 0.19047619],
[ 0.42857143, 0.04761905, 0.0952381 ]])
をすることができません。これが必要なのは残念だと思われますか?プラス私はその結果をリストにしたい。少なくとも私は私がそうすると思う... – pitosalas
@pitosalasそれを使い始めると、多くのことに役立つでしょう。非常にコンパクトで高速な数値コードを多数作成することができます。そして、例えば、離散フーリエ変換のようなことも行うことができます。それは多次元リストとの作業を非常に簡単にします。 –
上記の質問への私の更新に注意してください。 10で割るのではなく、すべての整数の和で除算したいのですが?それを正規化する? – pitosalas