numpyの基本的な使い方

この記事では、numpyの基本的な使い方についてご紹介します。

[toc]

変数の宣言、値へのアクセス

numpy配列を定義するには、np.array(初期値リスト、型)のように宣言します。

型には、int,やfloatを指定することができます。

一度、宣言した後は、リストと同様に[0]のようにインデックスを指定してアクセス出来ます。

[:2]のように範囲指定することで、0,1番目の値を取得することも可能です。

配列に特定の値が含まれているかどうかの判定には、「値 in 配列」のように書きます。

integerArray = np.array([1,2,3,4], int)

print(integerArray[0])

print(integerArray[:2])

print(2 in integerArray)

#1
#[1 2]
#True

配列の合成、0,1で初期化、rangeを使った初期化

numpy配列の同士の合成には、np.concatenateを使用します。

全ての要素が0もしくは1の配列を宣言したい場合には、np.zerosもしくは、np.onesを使います。

0~9までの要素で初期化したい場合には、range(10)のように指定します。

# numpy配列の合成、0で初期化、1で初期化、1〜10の範囲で初期化

integerArray2 = np.array([5,6], int)

print(np.concatenate((integerArray,integerArray2)))

print(np.zeros(10))

print(np.ones(10, dtype=int))

floatArray = np.array([[1,2,3],[4,5,6]],float)
print(floatArray)

rangeArray = np.array(range(10), int)
print(rangeArray)

#[1 2 3 4 5 6]
#[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
#[1 1 1 1 1 1 1 1 1 1]
#[[1. 2. 3.]
#[4. 5. 6.]]
#[0 1 2 3 4 5 6 7 8 9]

次元数の変更

配列の次元を変更した場合には、reshapeやflattenを使用します。

1×10の配列をreshapeを使って、2×5の配列にしてみます。

元に戻すにはflattenを使って1次元にします。

rangeArray = rangeArray.reshape(5,2)
print(rangeArray)

rangeArray = rangeArray.flatten()
print(rangeArray)

#[[0 1]
#[2 3]
#[4 5]
#[6 7]
#[8 9]]
#[0 1 2 3 4 5 6 7 8 9]

多次元配列の合成

多次元配列の合成も、同様にnp.concatenateを使用します。

axis=0を指定すると行の合成、axis=1で列の合成になります。

arr1 = np.array([[1,2,3],[4,5,6]],int)
arr2 = np.array([[7,8,9],[10,11,12]],int)

print(np.concatenate((arr1,arr2),axis=0))

print(np.concatenate((arr1,arr2),axis=1))

#[[ 1  2  3]
# [ 4  5  6]
# [ 7  8  9]
# [10 11 12]]
#[[ 1  2  3  7  8  9]
# [ 4  5  6 10 11 12]]

要素ごとの演算

要素ごとに足し算、掛け算をしてみます。

1つ目の配列の平方根も求めてみます。

# 配列の演算、足し算、掛け算、平方根

print("array 1\n {}".format(arr1))
print("array 2\n {}".format(arr2))

print("array1 + array2\n {}".format(arr1 + arr2))

print("array1 * array2\n {}".format(arr1 * arr2))

print("Square root of Array 1\n {}".format(np.sqrt(arr1)))

#array 1
# [[1 2 3]
# [4 5 6]]
#array 2
# [[ 7  8  9]
# [10 11 12]]
#array1 + array2
# [[ 8 10 12]
# [14 16 18]]
#array1 * array2
# [[ 7 16 27]
# [40 55 72]]
#Square root of Array 1
# [[1.         1.41421356 1.73205081]
# [2.         2.23606798 2.44948974]]

 

今日はこんなところです。

おわり。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog