私には数字がある数値がfloat64であるかどうかを調べる
賢明なよう
a = 1.22373
type(a) is float
私は数が
float64
であるかどうかを知りたいです。
どのように私はpythonまたはnumpyを使用して見つけるのですか?
私には数字がある数値がfloat64であるかどうかを調べる
賢明なよう
a = 1.22373
type(a) is float
私は数が
float64
であるかどうかを知りたいです。
どのように私はpythonまたはnumpyを使用して見つけるのですか?
使用isinstance:
>>> f = numpy.float64(1.4)
>>> isinstance(f, numpy.float64)
True
>>> isinstance(f, float)
True
numpy.float64はPythonネイティブfloat型から継承されます。これはfloatとfloat64の両方であるため(@Bakuriu thxを指摘するため)。これは、
>>> f = 1.4
>>> isinstance(f, numpy.float64)
False
>>> isinstance(f, float)
True
だけnumpyの種類を比較している場合、各DTYPEを識別する番号であなたの比較をベースにした方がよい場合があります。しかし、あなたは結果にFalse
を取得するのfloat64タイプのためのpythonフロートインスタンス変数をチェックする場合は基本となるCコードが行うことです。私のシステムでは、12はnp.float64
するための番号である:
>>> np.dtype(np.float64).num
12
>>> np.float64(5.6).dtype.num
12
>>> np.array([5.6]).dtype.num
12
も非numpyの値でそれを使用するには、次のようなもので、それを通して、あなたのようにアヒル-入力できます
def isdtype(a, dt=np.float64):
try:
return a.dtype.num == np.dtype(dt).num
except AttributeError:
return False
注 'そのisinstance(f、float) '' np.float64'はPythonの 'float'を継承しているので' f'が 'np.float64'のとき' True'です。 – Bakuriu
そして、 'float64'が'浮動小数点型 'であるというアイデアがある限り、真実です。ただそのコンセプトに固執してください。 – Alfe