2

NumPy 配列全体の値を変更する方法を教えてください。

たとえば、< 1e-15と等しくなるすべての値を変更したいとし1e-15ます。

4

4 に答える 4

3

Lがリストの場合:

L[:] = [max(x, 10e-15) for x in L]
于 2012-08-06T10:58:48.537 に答える
3

配列ではなく lsit を意味すると仮定すると、リスト内包表記を使用することをお勧めします。

new_list = [max(x, 1e-15) for x in my_list]

1e-15 == 10. ** (-15)(代わりにを意味していると思います10e-15 == 1e-14。)

Python には「配列」もありarray.arrayます。標準ライブラリのクラスと NumPy 配列です。

于 2012-08-06T10:58:57.877 に答える
3

あなたがnumpy配列を意味し、それが variable によって指されていると仮定しますa:

np.fmax(a, 1e-15, a)

これは、最初の 2 つの引数 (aおよび1e-15) として指定された 2 つの値の最大値を要素ごとに見つけ、その結果を 3 番目の引数 として指定された配列に書き戻しますa

この関数の公式ドキュメントを見つけるのに苦労しましたが、これを見つけまし

于 2012-08-06T11:04:54.323 に答える
2

私は好きですnumpy.fmax(これは私にとっては初めてでした)が、おそらくより一般的なケースでは、次をよく使用します。

a[a < 1e-15] = 1e-15

(条件を変えることができる、または置換値が比較値と等しくないという意味で、より一般的です。)

于 2012-08-07T12:16:28.420 に答える