TL;DR
NumPy、pandas の import 時に「as」という記号がついている。この記号は一体何を意味しているのだろうか?一言でいうと as はモジュールにエイリアスを付けることができる記号である。インポート文の最後に as をつけた後に任意の名前を記述すると、インポートしたオブジェクトに別名をつけることができる。
as のポイント
- 名前を変更するときにつかう
- 既に同じ名前のオブジェクトがある場合に上書きしてしまうことを防ぐことができる
- as の後ろに任意の名前を指定する
「as」という単語を調べると「2つの並べられた物・事が等価の関係にあることを示す」と書いてある。「同様」や「類似」という意味がある。
Python における「as」は、名前を変更するときにつかう。
as を使ったモジュール名の変更方法
モジュール名を変更する場合は以下のように書く。
from モジュール名 import 関数名 as 任意の名前
この書き方をすることによって、モジュール名を別の名前に変更したい場合や、既に同じ名前のオブジェクトがある場合に上書きしてしまうことを防ぐことができる。
以下の例では、モジュール名の「pi」を「math_pi」に変更している。
>>> from math import pi # πの値
>>> print(pi)
3.141592653589793
>>> from math import pi as math_pi
>>> print(math_pi)
3.141592653589793
NumPy、pandas などは、別名をつけるのが慣例となっている。
import pandas as pd
import numpy as np
as の使い方
次は、上書きされてしまう例である。以下「Python 実践入門」からコードを引用した。
# 組み込み関数の open
>>> open
<built-in function open>
# gzip の open をインポートする
>>> from gzip import open
# もう一度 open を見てみると
# open が gzip.open()に上書きされてしまった
>>> open
<function open at 0x1016d0160>
上書きを防ぐために、as をつけてみる
# 組み込み関数の open
>>> open
<built-in function open>
# gzip の open に as をつけて「gzip_open」としてインポートする
>>> from gzip import open as gzip_open
# gzip_open を見てみる
>>> gzip_open
<function open at 0x109bc8160>
# open を見てみると、上書きされていない
>>> open
<built-in function open>