▶ Numpyの基本を解説しています。過去の記事はこちらからどうぞ。
Python初学者向け:ndarrayについて基本から解説
Numpyについて扱っていきます。Numpyは数値計算ライブラリでNumerical Pythonの略です。特に行列演算を得意とします。今回はNumpyの独自のデータタイプであるndarrayについて基本から解説をしていきます。
Python初学者向け:ndarrayの基本操作について解説
前回に引き続き、Numpyのndarrayについて扱います。今回はndarrayの形状と次元の変更について基本から解説していきます。ndarrayの形状は各次元ごとの要素数で表します。まずは形状の把握の仕方から始めて、次元の変更までを解説していきます。
はじめに
今回はNumpyでのNaNの扱いについてまとめておきましょう。既にPythonでNoneとう型を扱いました。NumpyのNaNはこれと似ていますが異なるものです。このあと、学習を進めていく中で混乱しないように整理しておきましょう。それぞれの型・判定方法からみていきましょう。
Noneとnp.nanの違い
基本
まずそれぞれを一言で整理してみましょう。
- Noneは値が存在しないことを示すもの
- np.nan(Not a Number)は数ではないことを示すもの
これだけ聞くと、「似たようなものだ、なんのこっちゃ」となりますよね。それぞれの型やどんなことに気を付けなければいけないのかを確認していきましょう。
型(Type)
Noneとnp.nanではまず「型」が違います。
- None:None Typeの唯一の型
- np.nan:float型
※数ではない浮動小数点を表す非数
np.nanが原因のエラーはfloatを含んだエラーメッセージとなることが多いため、np.nanがfloat型であることを知っておくことは重要です。
判定方法
None、np.nanの判定方法も比較しておきましょう。Noneは既に学習したように「is None」で判定をします。一方、np.nanは「isnan()」を使って判定します。np.nanは「== np.nan」としても判定できないので注意しましょう。
# Noneとnp.nanを変数に格納
a_None = None
b_npnan = np.nan
# 判定
print('a_None is None:{}'.format(a_None is None))
print('np.isnan(b_npnan):{}'.format(np.isnan(b_npnan)))
print()
print('np.nanを「==」で判定してはいけない!! \nb_npnan == np.nan:{}'.format(b_npnan == np.nan))
自分自身との比較
Noneとnp.nanでは自分自身との比較結果でも違いがあります。見ておきましょう。
# Noneとnp.nanの自分自身との比較
print('Noneの自分自身との比較結果は:{}'.format(None==None))
print('np.nanの自分自身との比較結果は:{}'.format(np.nan==np.nan))
まとめ
今回はNoneとnp.nanを比較しながら、Numpyでのnp.nanの扱い方について整理しました。最後にまとめておきましょう。
コメント