NumPy は、プログラミング言語 Python において数値計算を効率的に行うための拡張モジュールです。効率的な数値計算を行うための型付きの多次元配列(例えばベクトルや行列などを表現できる)のサポートを Python に加えるとともに、それらを操作するための大規模な高水準の数学関数ライブラリを提供しています。
Wikipedia より引用、編集
Numpy の関数計算で無効な引数を指定した場合、RuntimeWarning という警告が出るものの np.float64(nan) を返すだけの場合があります。例を以下に示しました。
import numpy as np v = -1 np.log(v)
/tmp/ipykernel_10573/3390615159.py:4: RuntimeWarning: invalid value encountered in log np.log(v)
np.float64(nan)
np.float64(nan) で処理されて都合が良い時もありますが、例外処理をしたい場合もあります。
警告を例外として扱う方法を Microsoft Copilot に尋ねてみたところ、三つのやり方を教えてくれました。
その中で、最もしっくりきた方法を備忘録にしました。
import warnings
import numpy as np
# NumPyの警告を例外として扱う設定
warnings.filterwarnings("error")
try:
v = -1
result = np.log(v)
except Warning as e:
print(f"警告が例外としてキャッチされました: {e}")
警告が例外としてキャッチされました: invalid value encountered in log
使用した OS 環境は以下のとおりです。
|
Fedora Linux Workstation | 42 x86_64 |
| Python | 3.13.7 | |
| jupyterlab | 4.4.9 | |
| numpy | 2.2.6 |
参考サイト
にほんブログ村
#オープンソース


0 件のコメント:
コメントを投稿