差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
python:numpy_scipy_matplotlib [2019/07/29 09:46] – ともやん | python:numpy_scipy_matplotlib [2020/04/16 03:38] (現在) – ともやん | ||
---|---|---|---|
行 1: | 行 1: | ||
- | <ifauth !@loggedinusers> | + | < |
- | <script async src="// | + | <style> |
- | < | + | # |
- | | + | |
- | | + | overflow: scroll; |
- | | + | overflow-x: hidden; |
- | | + | } |
- | </script></ | + | #logo_numpy { |
+ | background-color: #a2bae8; | ||
+ | width: fit-content; | ||
+ | | ||
+ | | ||
+ | #logo_numpy p { | ||
+ | margin: 0; | ||
+ | } | ||
+ | | ||
+ | </ | ||
====== NumPy, SciPy, Matplotlib, CuPy, Pandas のインストール ====== | ====== NumPy, SciPy, Matplotlib, CuPy, Pandas のインストール ====== | ||
- | ===== NumPy, SciPy, Matplotlib, CuPy のインストール ===== | + | ====== NumPy, SciPy, Matplotlib, CuPy のインストール |
- | ==== Linux ==== | + | ===== Linux ===== |
< | < | ||
$ pip3 install numpy scipy matplotlib cupy | $ pip3 install numpy scipy matplotlib cupy | ||
</ | </ | ||
- | ==== Windows ==== | + | ===== Windows |
< | < | ||
> pip install numpy scipy matplotlib cupy | > pip install numpy scipy matplotlib cupy | ||
行 22: | 行 31: | ||
※CuPy をインストールするには [[windows: | ※CuPy をインストールするには [[windows: | ||
- | ==== NumPy ==== | + | ====== NumPy ====== |
- | {{: | + | <WRAP # |
- | [[https:// | + | {{: |
+ | </ | ||
+ | 本家: | ||
+ | ソースコード: | ||
+ | < | ||
+ | $ git clone https:// | ||
+ | </ | ||
+ | リファレンス: | ||
\\ | \\ | ||
**NumPy** は、プログラミング言語Pythonにおいて数値計算を効率的に行うための拡張モジュールである。効率的な数値計算を行うための型付きの多次元配列(例えばベクトルや行列などを表現できる)のサポートをPythonに加えるとともに、それらを操作するための大規模な高水準の数学関数ライブラリを提供する。\\ | **NumPy** は、プログラミング言語Pythonにおいて数値計算を効率的に行うための拡張モジュールである。効率的な数値計算を行うための型付きの多次元配列(例えばベクトルや行列などを表現できる)のサポートをPythonに加えるとともに、それらを操作するための大規模な高水準の数学関数ライブラリを提供する。\\ | ||
[[https:// | [[https:// | ||
- | ==== SciPy ==== | + | ====== SciPy ====== |
[[https:// | [[https:// | ||
\\ | \\ | ||
行 35: | 行 51: | ||
[[https:// | [[https:// | ||
- | ==== Matplotlib ==== | + | ====== Matplotlib |
[[https:// | [[https:// | ||
\\ | \\ | ||
行 41: | 行 57: | ||
[[https:// | [[https:// | ||
- | ==== CuPy ==== | + | ====== CuPy ====== |
{{: | {{: | ||
- | [[https:// | + | 本家: |
+ | ソースコード: | ||
+ | < | ||
+ | $ git clone https:// | ||
+ | </ | ||
+ | リファレンス: | ||
\\ | \\ | ||
**CuPy** は CUDA 上の NumPy 互換の多次元配列の実装である。CuPy は cupy.ndarray、コアの多次元配列クラス、およびそれに関する多くの関数で構成されている。それは numpy.ndarray インターフェイスのサブセットをサポートする。\\ | **CuPy** は CUDA 上の NumPy 互換の多次元配列の実装である。CuPy は cupy.ndarray、コアの多次元配列クラス、およびそれに関する多くの関数で構成されている。それは numpy.ndarray インターフェイスのサブセットをサポートする。\\ | ||
[[https:// | [[https:// | ||
- | ===== pandas | + | ====== Pandas |
+ | 本家: [[https:// | ||
+ | \\ | ||
+ | **Pandas** は、プログラミング言語 Python において、データ解析を支援する機能を提供するライブラリである。特に、数表および時系列データを操作するためのデータ構造と演算を提供する。Pandas は BSD ライセンスのもとで提供されている。\\ | ||
- | ==== Linux ==== | + | ===== Linux ===== |
< | < | ||
$ pip3 install pandas | $ pip3 install pandas | ||
</ | </ | ||
- | ==== Windows ==== | + | ===== Windows |
< | < | ||
> pip install pandas | > pip install pandas | ||
</ | </ | ||
- | <WRAP prewrap 100%> | + | <WRAP prewrap 100% #result> |
< | < | ||
Collecting pandas | Collecting pandas | ||
行 72: | 行 96: | ||
Installing collected packages: pytz, pandas | Installing collected packages: pytz, pandas | ||
Successfully installed pandas-0.25.0 pytz-2019.1 | Successfully installed pandas-0.25.0 pytz-2019.1 | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== 使い方 ===== | ||
+ | |||
+ | ==== 行によって列数の異なる CSV を DataFrame 化する方法 ==== | ||
+ | <file csv data.csv> | ||
+ | col1 col2 col3 col4 col5 | ||
+ | 1 2 3 4 | ||
+ | 1 2 3 | ||
+ | 1 2 3 4 5 | ||
+ | </ | ||
+ | <code python> | ||
+ | In [1]: import csv | ||
+ | |||
+ | In [2]: reader = csv.reader(' | ||
+ | |||
+ | In [3]: reader | ||
+ | Out[3]: < | ||
+ | |||
+ | In [4]: with open(' | ||
+ | ...: | ||
+ | ...: data = [row for row in reader] | ||
+ | ...: | ||
+ | |||
+ | In [5]: data | ||
+ | Out[5]: | ||
+ | [[' | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | In [6]: header, values = data[0], data[1:] | ||
+ | |||
+ | In [7]: import pandas as pd | ||
+ | |||
+ | In [8]: df = pd.DataFrame(values, | ||
+ | |||
+ | In [9]: print(df) | ||
+ | col1 col2 col3 col4 col5 | ||
+ | 0 1 2 3 | ||
+ | 1 1 2 3 None None | ||
+ | 2 1 2 3 | ||
+ | </ | ||
+ | |||
+ | ==== データフレームのグループ化(集計) ==== | ||
+ | <WRAP prewrap 100%> | ||
+ | <code python> | ||
+ | In [1]: import pandas as pd | ||
+ | |||
+ | In [2]: df = pd.DataFrame(columns=[' | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | In [3]: df | ||
+ | Out[3]: | ||
+ | col1 col2 col3 col4 | ||
+ | 0 aaa | ||
+ | 1 bbb | ||
+ | 2 ccc | ||
+ | 3 aaa | ||
+ | 4 bbb | ||
+ | 5 ccc | ||
+ | 6 aaa | ||
+ | 7 bbb | ||
+ | 8 ccc | ||
+ | |||
+ | # groupby のデフォルト動作はグループラベルが index になり集計列が単一の場合は Series が返る | ||
+ | In [4]: grouped = df.groupby(df[' | ||
+ | |||
+ | In [5]: type(grouped) | ||
+ | Out[5]: pandas.core.series.Series | ||
+ | |||
+ | In [6]: grouped | ||
+ | Out[6]: | ||
+ | col1 | ||
+ | aaa 6 | ||
+ | bbb 6 | ||
+ | ccc 6 | ||
+ | Name: col2, dtype: int64 | ||
+ | |||
+ | In [7]: pd.DataFrame(grouped) | ||
+ | Out[7]: | ||
+ | col2 | ||
+ | col1 | ||
+ | aaa 6 | ||
+ | bbb 6 | ||
+ | ccc 6 | ||
+ | |||
+ | # as_index=False にするとグループラベルが列になり DataFrame が返る | ||
+ | In [8]: grouped = df.groupby(df[' | ||
+ | |||
+ | In [9]: type(grouped) | ||
+ | Out[9]: pandas.core.frame.DataFrame | ||
+ | |||
+ | In [10]: grouped | ||
+ | Out[10]: | ||
+ | col1 col2 | ||
+ | 0 aaa 6 | ||
+ | 1 bbb 6 | ||
+ | 2 ccc 6 | ||
</ | </ | ||
</ | </ | ||