新人さんに python 使いになってもらうまで (2016年度版/宇宙物理学系の研究室)

# これは何か
- 研究室 (天文/宇宙物理) に新しく配属された新人さん (B4, M1) が対象
- python で解析ができるようになりましょう！

# python 環境を整えよう
## 方針
- Python をインストールし、次のパッケージを導入します： 
    - numpy, scipy, matplotlib, astropy, aplpy
- Python の version は python 3.x
- 個別にインストールすると大変なので、[Anaconda](https://www.continuum.io/) を使います
    - Anaconda は数値計算環境をまとめたディストリビューションです
    - 他にも、[Canopy](https://www.enthought.com/products/canopy/) や、[Python(x,y)](http://python-xy.github.io/) というのもあります
        - 参考： [【リンク集】Python科学技術計算パッケージ (Enthought Canopy, Anaconda, Pythonxy )の導入記事集](http://derivecv.tumblr.com/post/110760336530)
- 異なるバージョンの python を管理するために、[pyenv](https://github.com/yyuu/pyenv) を使います
    - Anaconda のインストールも pyenv からできます

## Mac OS X

### 1. Homebrew をインストールする

pyenv をインストールするために、まず、 mac のパッケージマネージャの [Homebrew](http://brew.sh/index_ja.html) をインストールします。

```
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

### 2. pyenv をインストールする
homebrew を使って、pyenv をインストールします。

```
$ brew install pyenv
```

### 3. Anaconda をインストールする
pyenv を使って、Anaconda をインストールします。

```
$ pyenv install anaconda3-2.4.1
```

- `$ pyenv install -l` でインストール可能な Python の種類を確認できます
- anaconda3-* は python 3 系列、anaconda-* は python 2 系列です

Anaconda がインストールされたことを確認します。

```
$ pyenv versions
* system
  anaconda3-2.4.1

$ python --version
Python 2.7.10

$ pyenv global anaconda3-2.4.1

$ pyenv versions
  system
* anaconda3-2.4.1 

$ python --version
Python 3.5.1 :: Anaconda 2.4.1 (x86_64)
```

### 4. Anaconda にパッケージを追加する

Anaconda にパッケージを追加します。

```
$ pyenv global anaconda3-2.4.1

$ pyenv version
anaconda3-2.4.1

$ pip install aplpy
...省略

$ ipython
Python 3.5.1 |Anaconda 2.4.1
IPython 4.0.1 -- An enhanced Interactive Python.
...省略

In [1]: import aplpy

In [2]: aplpy.__version__
Out[2]: '1.0'
```

## Linux
そのうち書くかも...

## Windows
そのうち書くかも...


# python を学ぼう
## まとまった情報
まずは、python とはなにか、プログラミングとはどのようなものなのか、を、体系立てられた情報を学び、基礎的な理解を得ましょう。最初のうちは、とりあえず手を動かしてみることが肝心なようです。検索エンジンで 「python 入門」、「python 初心者」などと検索してみてもいいでしょう。いくつかオススメのウェブサイトを載せるので見てみてください。

- 動画で基礎から学ぶ -- プログラミング初めての人向け
 - [ドットインストール : python](http://dotinstall.com/lessons/basic_python_v2)
- 公式ドキュメントで学ぶ
    - [Python チュートリアル](http://docs.python.jp/3.5/tutorial/)
- 科学計算をしてみる
 - [Scipy Lecture Notes (日本語訳)](http://www.turbare.net/transl/scipy-lecture-notes/)
- 天文データを扱ってみる
 - [Qiita : 天文解析によく使う python モジュール/関数](http://qiita.com/nishimuraatsushi/items/f422c624027dcd34b820)

## 天文以外のいろいろなトピック
基本的なところをおさえることができたら、後は、各個人の興味があることを調べることが上達の早道。いろんな事ができますよ。

#### 数式処理
- [Qiita : 2015年センター試験数学IAを全てプログラム(Python)で解く](http://qiita.com/Akai_Banana/items/b328fe0116d248127a36)
- [Qiita : 2015年センター試験数学ⅡBをPythonで解く](http://qiita.com/massa142/items/b224a07c1b33e9a39cd8)

#### 機械学習
- [Qiita : 機械学習はじめの一歩に役立つ記事のまとめ](http://qiita.com/shu223/items/9cbde46c0690f1952750)
- [Qiita : スタバのTwitterデータをpythonで大量に取得し、データ分析を試みる その１](http://qiita.com/kenmatsu4/items/23768cbe32fe381d54a2)
- [Qiita : pythonと遺伝的アルゴリズムで作るFX自動売買システム その1](http://qiita.com/haminiku/items/a032d94e4f0d862df2b2)

#### 通信
- [Qiita : Pythonによる通信処理](http://qiita.com/nadechin/items/28fc8970d93dbf16e81b)
- [PythonのWebフレームワーク「CherryPy」　入門用にも適した、枯れた名品](http://mojix.org/2013/01/05/python-cherrypy)

#### 遊ぶ
- [Pygameで書かれたスーパーマリオ似のゲーム「Pixelman」](http://mojix.org/2009/01/11/pixelman)
- [Python+PyAudio+MMLでスーパーマリオの地上BGMを](http://d.hatena.ne.jp/mohayonao/20110122/1295655031)
- [Qiita : RaspberryPiで人感センサーを作る](http://qiita.com/inaBowBow/items/dca01622d086f113db00)