たなブログ 教養を高めて生涯資産を増やすブログ(`・ω・´)

【Python Coding】numpy “info” を使って数値型データの範囲を知ろう

PR Pythonを学ぶ

こんにちは、たなです。

今回は、pythonのnumpyを使って、「数値型データ」が取り得る値の範囲を知る方法を紹介していきたいと思います。数値型データとは、整数を扱う「int型」や小数点を扱う「float型」のことを意味します。

先にお伝えしておくと、今回の記事は少しニッチな内容かなと思います。
pythonやデータサイエンスの勉強を始めたばかりの方であれば、正直知らなくても支障はないです。

ただ、いずれより良いデータ分析をする上では知っておくと便利になるので、「こんな方法もあるんだ」という軽い気持ちで読んで頂ければ幸いです。

本記事の内容

  • int型やfloat型のデータ範囲を確認する方法
  • “np.iinfo”と”np.finfo”の使い方

僕のブログでは【完全ガイド】pythonの学習サイトをレベル別に紹介!【基礎から機械学習・人工知能までのロードマップ】という記事も公開しています。より高みを目指したい人は参考にしてみてください。

pythonの学習ロードマップへ

numpy “info”を使って数値型データの範囲を知る方法

数値型データのレンジ(値の範囲)を知る必要性

最初に、「int型」や「float型」が扱えるデータ範囲を知る意義について簡単に紹介しておきます。一言で言えば、Kaggleなどで扱うビッグデータの容量を圧縮する余地があるかを判断する場面で使えます。

Kaggleのようなデータ分析コンペで提供されるデータだけでなく、クライアントが持つビッグデータを分析するような場面でも使えます。

既存のファイルやデータベースをpythonで扱う場合、通常はpandasなどを用いてデータフレーム化することが一般的です。そして、データフレームのデータ型を確認すると、(使用PCの環境によりますが)「int64」や「float64」になっていることがわかるはずです。

数値型データの種類|「int」「float」(ドキュメントより引用


これは、デフォルトではどんな値でも読み込めるように「一番容量の大きい型」になるように設定されているためです。言い換えれば、「そんなに大きい型じゃなくてもいいのに、無駄に容量が大きくなっている」可能性があるということです。

このように、数値型データの範囲を知っておけば、「今扱っているデータはそこまで大きくないから、データサイズを圧縮出来るかも」と判断の助けになるということを、頭の片隅にでも入れておいてください。

「np.iinfo」を使う:”int型”の場合

では実際に、「int型」が取り得る値の範囲を確認する方法を見ていきましょう。
「int型」関連の情報を取得するためには、`np.iinfo()`を用いる必要があります。

「int8」を例にして、どのように使うかをコードで確認した結果が以下となります。
np.iinfoの引数に「確認したいint型」を指定し、「min」で最小値、「max」で最大値を確認出来ます。

「np.iinfo()」の簡単な使い方


先ほど紹介した表の値と一致しているか確認してみた結果が以下です。
print関数を使うことで、「min」と「max」を自動的に表示してくれます。

「int型」が取り得る値の範囲を確認した結果
ドキュメント記載の内容と一致していることがわかる


コード結果と表を見比べてみると、取り得る値の範囲が一致していることがわかりますね。

「np.finfo」を使う:”float型”の場合

続いて、「float型」が取り得る値の範囲を確認する方法を見ていきましょう。
「float型」関連の情報を取得するためには、`np.finfo()`を用いる必要があります。

「int型」と同様に、表の値と一致しているか確認してみた結果が以下となります。
「int型」よりも細かい情報が表示されている点が特徴的ですね。

「float型」が取り得る値の範囲を確認した結果
ドキュメント記載の内容と一致していることがわかる (exp部分)


以上が「np.iinfo()」と「np.finfo()」の使い方となります。
各データ型の最小値と最大値を閾値として利用することで、データサイズの変換などに活かしてみてください。

まとめ:numpy “info”を使ってデータの範囲を知れば分析の幅が広がる


今回は、numpyの「iinfo」や「finfo」を用いて、数値型データが取る値の範囲を見てきました。

あまり意識しなくてもデータ分析上は差し支えないですが、知っておくと便利になるときが来るハズなので参考にしてみてください。

冒頭でも紹介しましたが、pythonの学習方法を【完全ガイド】pythonの学習サイトをレベル別に紹介!【基礎から機械学習・人工知能までのロードマップ】でまとめています。良ければあわせて読んでみてください。

良いpythonライフを。