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点回答お願いします。
CC BY-SA 3.0
2018-04-20T13:10:45.973
43438
2018-04-20T14:35:52.480
25518
question
python
pythonのモジュール、ライブラリの意味の違い
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
    
```
CC BY-SA 3.0
2018-04-20T14:35:52.480
43440
2018-04-20T14:35:52.480
25980
43438
answer