NumPy 配列全体の値を変更する方法を教えてください。
たとえば、< 1e-15
と等しくなるすべての値を変更したいとし1e-15
ます。
L
がリストの場合:
L[:] = [max(x, 10e-15) for x in L]
配列ではなく lsit を意味すると仮定すると、リスト内包表記を使用することをお勧めします。
new_list = [max(x, 1e-15) for x in my_list]
1e-15 == 10. ** (-15)
(代わりにを意味していると思います10e-15 == 1e-14
。)
Python には「配列」もありarray.array
ます。標準ライブラリのクラスと NumPy 配列です。
あなたがnumpy配列を意味し、それが variable によって指されていると仮定しますa
:
np.fmax(a, 1e-15, a)
これは、最初の 2 つの引数 (a
および1e-15
) として指定された 2 つの値の最大値を要素ごとに見つけ、その結果を 3 番目の引数 として指定された配列に書き戻しますa
。
この関数の公式ドキュメントを見つけるのに苦労しましたが、これを見つけました。
私は好きですnumpy.fmax
(これは私にとっては初めてでした)が、おそらくより一般的なケースでは、次をよく使用します。
a[a < 1e-15] = 1e-15
(条件を変えることができる、または置換値が比較値と等しくないという意味で、より一般的です。)