2017-03-18 5 views
0

numpyのarrayのデータポイントが整数かどうかを確認する最も簡単な方法は何ですか?現在、私は*832または64できる場合、これを達成するために、配列xの要素iの種類、その後numpyの整数型を識別するにはどうすればよいですか?

`if numpy.dtype(x[i]).type is numpy.int*` 

を返すためにnumpy.dtype(x[i]).typeを使用しています。しかし、それはuintを返すかもしれないので、このifウェイはFalseを返すことができます。私は、それが整数であるかどうかを特定する簡単な方法が存在するのだろうかと疑問に思うのですが、正確にはintタイプです。そして浮動小数点についてはどうですか?

+0

'numpy.dtype(x [i])'は機能しますか? 'x'とは何ですか?数値であれば 'TypeError:データ型が理解できない 'と表示される – Eric

+1

申し訳ありませんが、' x = np.array([1,2,3,4,6,7]) 'と' np.dtype(x [0] ) ' – Elkan

+0

TIL配列のスカラーで' np.dtype'が働き、タイプを取得します – Eric

答えて

2

これは役立つかもしれない(これは効果的に類似したfashion 'U' の符号なし整数、などだろうに、符号付き整数をテスト):

x[i].dtype.kind == 'i' 
+0

ありがとう。私はこの答えを[numpyのデータ型の定義](https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html)の定義と一致して受け入れ、私には合っています。 – Elkan

0

いずれかを使用します。

issubclass(x[i].dtype.type, np.integer) 

または

np.issubdtype(x[i].dtype, np.integer) 

np.dtype(x)のあなたのコードは、あなたがやりたいことはほとんどありません - xのDTYPEを取得していないこと、しかしとしてのxを解釈しよう新しいdtypeの説明。あなたがdtypeを必要とする非numpyオブジェクトを持っている場合は、np.asanyarray(x).dtype

関連する問題