note.nkmk.me

pandasからNumPyの関数などを使う方法(pd.np)

Date: 2018-08-09 / Modified: 2020-02-01 / tags: Python, pandas, NumPy

pandasをインポートすると同時にNumPyもインポートされ、pd.npでNumPyモジュールにアクセスできる。pandasをインポートするだけでNumPyを明示的にインポートせずにNumPyの関数などが使用可能。

Jupyter Notebookなどでpandasをインポートして使っているときにNumPyの関数などを使いたくなった場合に NumPyを追加でインポートする必要がないので、書き捨てのコードを書いているときなどは便利。

もちろん、NumPyの関数などを何度も使うのであれば明示的にNumPyをインポートしておいたほうがコードとしては分かりやすい。

ここでは以下の内容について説明する。

  • pd.npnpは同一オブジェクト
  • pd.npの使い方

<<注意 - 2020-02-01追記>>
pandas1.0.0pd.npはDeprecated(非推奨)となった。1.0.0時点では警告(FutureWarning)のみだが将来的には廃止されるので注意。

スポンサーリンク

pd.npとnpは同一オブジェクト

以下の通りpd.npprint()で出力すると、NumPyモジュールであることが分かる。

import pandas as pd

print(pd)
# <module 'pandas' from '/usr/local/lib/python3.7/site-packages/pandas/__init__.py'>

print(pd.np)
# <module 'numpy' from '/usr/local/lib/python3.7/site-packages/numpy/__init__.py'>

続けてNumPyもインポートして比較すると、pd.npnpは同一オブジェクトであることが確認できる。当然ながらそれに含まれる関数などのオブジェクトも同一。

import numpy as np

print(pd.np is np)
# True

print(pd.np.mean is np.mean)
# True

pd.npの使い方

NumPyをインポートしてnpとして使うところをpd.npに置き換えればOK。

a = pd.np.arange(12).reshape(3, 4)

print(a)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]

print(type(a))
# <class 'numpy.ndarray'>

各種関数のほか、円周率piやネイピア数(自然対数の底)eなど、NumPyで定義されている値(定数)も使える。

print(pd.np.pi)
# 3.141592653589793

print(pd.np.e)
# 2.718281828459045
スポンサーリンク
シェア
このエントリーをはてなブックマークに追加

関連カテゴリー

関連記事