PCのデータ整理で必須となる数列、行列を扱ってみます。
数列と行列
数列は、規則的に並べた数の列です。
行列は、横、縦にランダムに並べられた数の集まりです。横方向の並びを行、縦方向の並びを列と言います。
プログラムで数値を扱う上でどちらも重要なものになります。それぞれの簡単な例をあげておきます。
数列
例
(1、2、3、4、5、….)
(1、5、25、125、625….)
一番目が「等差数列」、二番目が「等比数列」になります。
等差数列
a = numpy.arange(初項, 末項+1, 公差)
数列に合わせた書き方をしました。末項+1としたのは、指定値未満まで計算するので、末項よりも大きくて、末項+公差を超えない数値にする必要があります。
等比数列
c = numpy.geomspace(初項, 末項, 項数)
初項と末項、項数を設定すると、公比を自動計算して各項の値を計算してくれます。
行列
「0 1 2│
│3 1 5│
│9 4 6」
このような並びを3×3の行列言います。
Pythonで表示してみます。
d = numpy.array([[0行0列, 0行1列, 0行2列], [1行0列, 1行1列, 1行2列], [2行1列, 2行2列, 2行3列]])
数学での行列場所を指定する方法と、プログラムでの行列場所を指定する方法が違うので注意が必要です。
pythonで表現する
リスト型を使って
複数データの管理で紹介したリスト型は、リスト作成者が注意して作成すれば問題ありませんが、手入力では確実性が担保されませんしプログラムの意味がありません。繰り返し計算 for と range を使えば作ることが可能です。
NumPy を使って
外部ライブラリのnumpyを使うことで、数列、行列を扱うことができます。
事前にインストールが必要です。
pip install numpy
動作確認
数列
等差数列 1
1から9までを+1する等差数列を計算させます。
import numpy as np
a = np.arange(1, 10, 1)
print(a)計算結果です。
[1 2 3 4 5 6 7 8 9]
特に難しいことはありません。リスト型などと違って数字と数字の間に「,」がないのも特徴です。
等比数列 2
追加で2点、確認します。ひとつは値を使った計算、もうひとつはプログラム内での認識です。
import numpy as np
a = np.arange(1, 10, 1)
b = a[0] + a[1]
print(b)
print(type(a))上のプログラムを実行すると、
3
<class ‘numpy.ndarray’>
初項の1と第2項の2を足した3が解として表示されています。
等比数列
import numpy as np
c = np.geomspace(2,16,4)
print(c)
print(type(c))上のプログラムを実行すると、
[ 2. 4. 8. 16.]
<class ‘numpy.ndarray’>
になります。綺麗な数値になるようにしました。因みに、公比は2です。
c = np.geomspace(2,16,5) として実行すると、
[ 2. 3.36358566 5.65685425 9.51365692 16. ]
<class ‘numpy.ndarray’>
公比は、約1.681 です。
行列
3行3列の行列を作ります。
import numpy as np
d = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
print(d)
print(type(d))行列を表示させて、プログラム内でどう認識しているかを確認します。
[[0 1 2]
[3 4 5]
[6 7 8]]
<class ‘numpy.ndarray’>
0行2列の数値のピックアップ、同じく0行2列の数値を変更してみます。
import numpy as np
d = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
e = d[0, 2]
print(e)
d[0, 2] = 10
print(d)結果は以下の通りです。
2
[[ 0 1 10]
[ 3 4 5]
[ 6 7 8]]
気を付けなければならないのは、数学上では1行1列からはじまり、0行0列という数え方はしません。一方、プログラムでは0行0列からはじまります。
今のところ、プログラムで使用する予定はありませんが、後学のためにライブラリNumpyを使ってみました。


コメント