質問: 1.pythonのモジュール、ライブラリの意味の違いを教えてください。 2.scikitlearn ではfrom sklearn.model_selection import train_test_split と書いてtrain_test_split関数を読み込みますが、pandasではfrom pandas import read_csv と書いてread_cav関数を読み込みます。scikitlearnとpandasは両方ともライブラリらしいですが、同じ関数なのになぜtrain_test_splitはskitlearnの二階層下にあって、read_csvはpandasの一階層下にあるんですか?ライブラリ⇒モジュール⇒関数と思っていたのですが違うのでしょうか? 以上2点回答お願いします。
回答: 1. モジュール:モジュール,関数,クラス,変数などの定義の集まり ライブラリ:モジュール,関数,クラス,変数などの定義の集まり ライブラリという言葉はpythonの言語仕様には規定がないです。非常に広い領域で使われています。Cの標準ライブラリとか、C#の.netのクラスライブラリとか。ライブラリは概ねプログラマによって呼び出されることを主目的として書かれた汎用的なプログラム(API)のことをさします。 モジュールはpythonの言語仕様として定められているのでこちらのほうが意味がはっきりしています。関数やクラスが入ってたりします。モジュールを複数入れたものをpythonではパッケージと呼ぶことがありますが、内部的には複数のファイル(モジュール)をまとめ上げるモジュールのようです。 2. ここではsklearnはパッケージ、つまり階層構造を持つモジュールです。 pandasは一層下にread_csvを持つモジュールです。 モジュール.関数も、モジュール.モジュール.関数も許されるということです。 ``` import sklearn import pandas type(sklearn) #->module と表示されるがパッケージと呼ぶことが多い type(sklearn.model_selection) #->module type(pandas) #->module type(train_test_split) #->function ```