ndarray で浮動小数点数を見つけようとしました。私が使用しているソフトウェア パッケージ (Abaqus) が原因で、出力される精度が少し低くなります。たとえば、10 は 10.00003 のようなものです。したがって、それを行うための「正しい」方法があるかどうか疑問に思っていました。それは私のコードよりもきれいです。
コード例:
import numpy as np
array = np.arange(10)
number = 5.00001
私がこれを行う場合:</p>
idx = np.where(number==array)[0][0]
5.00001 は 5 に等しくないため、結果は空になります。
今私はやっています:
atol = 1e-3 # Absolute tolerance
idx = np.where(abs(number-array) < atol)[0][0]
これは機能し、あまり面倒ではありません...それでも、もっときちんとした方法があるのではないかと思っていました。ありがとう!
PS:numpy.allclose()
それを行う別の方法ですが、使用する必要がありnumber * np.ones([array.shape[0], array.shape[1]])
、まだ冗長に思えます...
編集:素晴らしい回答をありがとうございました!np.isclose() は私が探している正確な関数であり、ドキュメントにないため見逃していました...ドキュメントが更新されるまで、あなたがいなければ気づかなかったでしょう。ありがとうございました!