NumPyの使い方 [Python]
NumPy(ナムパイ、ナンパイ)は「数値計算ライブラリ」です。
NumPyでは「array」オブジェクトという、Pythonの標準リストより便利で高速演算が可能な「数値の配列」を使用します。標準リストのように[]によるアクセスやスライス操作などが可能です。
※サンプルコードの「---」以下は出力結果です。
目次
1. 配列の作成
2. 型の変更
3. 配列の次元を変更する
4. 配列の行列を反対にする
5. 配列情報を取得する
6. 合計/最小値/最大値/平均値/中央値/分散/標準偏差
7. 配列の演算
8. 配列の連結
9. ファイルから配列を生成する
1. 配列の作成
1-1. 1次元配列
arrayの引数にリスト/タプルなどを渡して、arrayを作成します。
import numpy as np np.array([0, 1, 2]) --- array([0, 1, 2])
1-2. 2次元配列
import numpy as np
np.array([[0, 1, 2],[3, 4, 5],[6, 7, 8]])
---
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
1-3. arange
numpy.arangeはPython標準のrangeと同様です。
import numpy as np arr = np.arange(5) arr --- array([0, 1, 2, 3, 4])
1-4. 0の配列を作る
import numpy as np arr = np.zeros(5) arr --- array([0., 0., 0., 0., 0.])
1-5. 1の配列を作る
import numpy as np arr = np.ones(5) arr --- array([1., 1., 1., 1., 1.])
1-6. ランダムな配列を作る
import numpy as np arr = np.random.rand(5) arr --- array([0.20056278, 0.00908189, 0.57972688, 0.92763317, 0.07148467])
2. 型の変更
import numpy as np arr = np.array([0, 1, 2]) arr.astype(np.float32) --- array([0., 1., 2.], dtype=float32)
3. 配列の次元を変更する
1次元配列を2次元配列へ変換する。
import numpy as np
arr = np.arange(9).reshape(3, 3)
arr
---
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
4. 配列の行列を反対にする
import numpy as np
arr = np.arange(9).reshape(3, 3)
arr.T
---
array([[0, 3, 6],
[1, 4, 7],
[2, 5, 8]])
5. 配列情報を取得する
import numpy as np
arr = np.array([[0, 1, 2],[3, 4, 5],[6, 7, 8]])
print("サイズ : " + str(arr.size))
print("型 : " + str(arr.dtype))
print("次元数 : " + str(arr.ndim))
print("要素数 : " + str(arr.shape))
---
サイズ : 9
型 : int32
次元数 : 2
要素数 : (3, 3)
6. 合計/最小値/最大値/平均値/中央値/分散/標準偏差
import numpy as np
arr = np.array([75, 80, 95, 67, 72])
print("合計 :", np.sum(arr))
print("最小値 :", np.min(arr))
print("最大値 :", np.max(arr))
print("平均値 :", np.mean(arr))
print("中央値 :", np.median(arr))
print("分散 :", np.var(arr))
print("標準偏差 :", np.std(arr))
---
合計 : 389
最小値 : 67
最大値 : 95
平均値 : 77.8
中央値 : 75.0
分散 : 91.76
標準偏差 : 9.579144011862438
[軸の演算(axis)]
sum,min,max,mean,median,var,stdなどでは「軸の演算」が可能です。
| axis = 0 | Verticalで配列の縦(垂直)を演算する。 |
| axis = 1 | Horizontalで配列の横(水平)を演算する。 |
[axisのサンプルで使用する配列]
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
axis = 0
import numpy as np arr = np.array([[0, 1, 2,],[3, 4, 5],[6, 7, 8]]) np.sum(arr,axis = 0) --- array([ 9, 12, 15])
axis = 1
import numpy as np arr = np.array([[0, 1, 2,],[3, 4, 5],[6, 7, 8]]) np.sum(arr,axis = 1) --- array([ 3, 12, 21])
7. 配列の演算
加算
import numpy as np # 1から4の配列 arr = np.arange(1,5) # 全ての配列の要素に1を加算する arr + 1 --- array([2, 3, 4, 5])
乗算
import numpy as np arr = np.arange(1,5) arr * 2 --- array([2, 4, 6, 8])
配列同士の加算(次元が同じ)
import numpy as np a = np.arange(1,5) b = np.arange(1,5) a + b --- array([2, 4, 6, 8])
配列同士の加算(次元が異なる)
import numpy as np
a = np.ones(9).reshape(3, 3)
b = np.arange(1,4)
a + b
---
array([[2., 3., 4.],
[2., 3., 4.],
[2., 3., 4.]])
配列の次元が異なる場合でも、行列のどちらかが同じならば演算が可能です。
8. 配列の連結
| Vertical | 縦(垂直) |
| Horizontal | 横(水平) |
import numpy as np a = np.arange(1,4) b = np.arange(4,7) np.hstack((a, b)) --- array([1, 2, 3, 4, 5, 6])
import numpy as np
a = np.arange(1,4)
b = np.arange(4,7)
np.vstack((a, b))
---
array([[1, 2, 3],
[4, 5, 6]])
9. ファイルから配列を生成する
import numpy as np
# ランダムな小数を作成する
arr = np.random.rand(100)
# ファイルに書き込む
try:
f = open("test.txt", "w", encoding="utf-8")
for val in arr:
f.write(str(val)+ "\n")
except:
print("エラーが発生しました。")
finally:
f.close()
# ファイルから読み込み配列にする
arr = np.loadtxt("test.txt")
# グラフを表示する
%matplotlib inline
import matplotlib.pyplot as plt
h = plt.hist(arr)
※20行目の%matplotlib inlineはJupyter Notebook用です。
参考URL(公式)
スポンサーリンク
関連記事
公開日:2018年07月08日 最終更新日:2018年08月24日
記事NO:02694
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









