Pythonの基本

# はじめに
医療系の学生や医療従事者(コメディカル)の方々が，Pythonを使って解析を行う前に必要と思われる基本操作等について述べます。

## Pythonの動作環境
Pythonの環境構築は比較的簡単になってきました。
ここでは２つの方法を紹介します。

 - Anacondaのインストール
  + Anacondaのダウンロードサイト https://www.anaconda.com/products/individual から簡単にインストールできます。少し時間がかかるかもしれません。


 - colaboratoryのインストール
  + Googleアカウントを取得する必要があります(Gmailを持つ，もっていれば必要なし)。
  + Chromeをインストールしたのち，ログインします。
  + Google Driveのウィンドウを開き，下図のように，新規→その他→アプリの追加と進みます。
  + colaboratoryを検索してインストールします。
  + 完了後，新規→その他と進みますと，`Google Colaboratory`ありますので選択しますとウィンドウが立ち上がります。

 ![スクリーンショット 2020-08-27 8.52.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89181/5c97a06f-01d6-4eec-00da-114cd26601c9.png)

以上，準備します。

colaboratoryのセルに適当な数値を入れて実行してみてください。実行する場合は，赤矢印のあたりにカーソルをもっていくと，このように表示されますので，それをクイックする，もしくは`shift + enter`をおします。
![スクリーンショット 2020-08-27 8.32.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89181/c421133d-7467-9b58-24ff-b5259549da26.png)


## Pythonで扱える文字や数値
Pythonでは，3つのデータ型を扱います。

 - int型：1, 2, 0, -1, -2000,  ⋯ 
 - float型：2.3, 3.1415, -0.5, 0.0, -10.4  ⋯ 
 - 文字列型：'abc', 'apple', "orange", "support", '東京',  ⋯ 
 - 真偽値：True, False

## リスト
Pythonの基本中の基本です。この仕組みが理解できますと，Excelなどで作成する2次元配列(縦と横に並ぶ表)の操作が非常に簡単になります。
医療系で好まれるExcelでは，データの量が膨大になりますと，それだけ処理に時間がかかったり，操作が増えたり，と煩雑になりがちです。Pythonで変数名を使ってリストを扱うことのイメージができれば，データ量に依存するような煩雑な作業はありません。
ということで，素人が迎える重要なポイント，であるPythonのリストの操作について勉強しましょう。

### リストの基本型
$[]$(角括弧)内に存在するデータを一つのデータ群として扱い，

```Python:
[0,1,2,3,4,5,6,7,8,9]
```
のように書きます。

リストは，

```Python:
[0.4,1,5,"東京","日本"]
```
のように，数値や文字を混ぜることができます。また，リストにリストを格納することもできます。

```Python:
[[0,1,2,3,4],102,103,104,105,["北海道","東京","日本"]]
```

このようにリストは様々なデータを一度に扱うことのできる優れものなのです。

### 変数名
前に例示したように，リストをその都度作成したり，打ち込んだりすることは実際にはしません。
多くの場合，取り出したリスト(データ)に仮の名前を与えます。その名前を変数名と言います。そのときに使うのが，`=`です。この記号の意味は`代入する`ということなのですが，同じにするという解釈でもいいかもしれません。例えば，

```Python:
myd = [[0,1,2,3,4],102,103,104,105,["北海道","東京","日本"]]
```

に書きますと，`=`の左にある`myd`が変数名，右がリスト(データ)になります。`=`の右を左の`myd`に代入するということになります。
そして，セルを変えて`print(myd)`もしくは`myd`とすると，`=`の右のリストが表示されるでしょう。
**変数名には予約語を避けるなど，ルールがあります**(詳細は省きます)

```Python:
print(myd)
```

### インデックス
2次元配列を扱えるようになるためには，`index`ということを知っておいたほうがいいでしょう。要するに，要素(リストの中身)には番号がふられます。その番号は，リストの左から,0,1,2,$\cdots$となります。その番号を使って，リスト内のデータを取り出したり，変更したり，削除したりします。
(注)0からはじまることに注意しましょう。
たとえば，

```Python:
print(myd[1])  ##--> 102が取得される
print(myd[0])  ##--> [0,1,2,3,4]が取得される
```
のように書きます。

取得したいデータに範囲があるときは`:`を使う。基本の形は

```Python:
print(myd[:])
```
であり

```Python:
print(myd[1:3]) ##--> [102,103]が取得される
print(myd[1:4]) ##--> [102,103,104]が取得される
```
のように書く。
また，

```Python:
print(myd[::2])  ##-->[[0,1,2,3,4],103,105]
```
とすると，一つとおきに取り出される。

また，リストを右から順に指定できる。
たとえば

```Python:
print(myd[-1])  ##-->['北海道','東京','日本']
print(myd[-2])  ##-->105
print(myd[-3:])  ##-->[104, 105, ['北海道', '東京', '日本']]
print(myd[-4:-1])  ##-->[103, 104, 105]
```
ように書けます。一つずつ実行して，その出力される結果を確認しましょう。
以上のことは，よく使うテクニックです。

### リストの中のリスト
リストにリストを含めることができることは先ほど述べました。
リストに入るリストの要素数を揃えることで，２次元の(配列)リストが作られれば，エクセルの表を表してることになります。
簡単な例を示します。

```Python:
df = [[11,12,13],[21,22,23],[31,32,33],[41,42,43],[51,52,53],
[61,62,63],[71,72,73],[81,82,83],[91,92,93]]
```
これは，リストの要素がリストとなっています。それら要素であるリストの要素を数値としています。
それを，一つのデータとして`df`という変数名に格納しています。

```Python:
df[0] ##-->[11,12,13]
df[0:4] ##-->[[11,12,13],[21,22,23],[31,32,33],[41,42,43]]
```
と，リストです。リストのリストを指定する場合は，

```Python:
df[0][2] ##-->13
df[3][0] ##-->41
```
のように，indexをつなげて書きます。この二つの数値が縦に◯番目，横に□番目と捉えることもできます。つまり，表を読むときと同じと見なすことができます。


# 最後に
ここまで理解できれば，Pythonでも表を扱えると思います。まだまだ他にも便利なことはたくさんありますが，今回はここまでにしておきます。