「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
数値計算を効率的に行うための拡張モジュール
AnacondaによりNumPyをインストールする。
>>>import numpy as np
1次元配列はベクトルとも言う。
>>>x=np.array([1.0,2.0,3.0]) >>>print(x) [1. 2. 3.] >>>type(x) <class 'numpy.ndarray'>
同じ数の要素を持つ2つのNumPy配列を算術計算で処理する。
>>>x=np.array([1.0,2.0,3.0]) >>>y=np.array([2.0,4.0,6.0])
>>>x+y array([ 3., 6., 9.])
>>>x-y array([-1., -2., -3.])
>>>x*y array([ 2., 8., 18.])
>>>x/y array([ 0.5, 0.5, 0.5])
>>>a=np.array([[1, 2], [3, 4]]) >>>print(a) [[1 2] [3 4]] >>>a.shape # 行列の形状 (2, 2) >>>a.dtype # 行列要素のデータ型 dtype('int32')
>>>a=np.array([[1, 2], [3, 4]]) >>>b=np.array([[3, 0], [0, 6]])
>>>a+b array([[ 4, 2], [ 3, 10]])
>>>a*b array([[ 3, 0], [ 0, 24]])
スカラ値や異なる形状の配列と計算を行う。
配列とスカラ値との計算では、スカラ値が配列形状に拡張され計算される。
>>>x=np.array([1.0,2.0,3.0]) >>>x/2.0 array([ 0.5, 1. , 1.5])
>>>a=np.array([[1, 2], [3, 4]]) >>>a*10 array([[10, 20], [30, 40]])
ベクトルと行列との計算では、ベクトルが行列形状に拡張され計算される。
>>>a=np.array([[1, 2], [3, 4]]) >>>b=np.array([10,20]) a*b array([[10, 40], [30, 80]])
>>> a=np.array([[51, 55], [14, 19], [0, 4]]) >>> print(a) [[51 55] [14 19] [ 0 4]] >>>a[0] array([51, 55]) >>>a[0][1] 55
>>> a=np.array([[51, 55], [14, 19], [0, 4]]) >>> a=a.flatten() >>> print(a) [51 55 14 19 0 4]
>>> a[np.array([0,2,4])] array([51, 14, 0])
>>>a>15 # 15より大きい値を調査。 array([ True, True, False, True, False, False], dtype=bool) >>>a[a>15] # 15より大きい値を抽出。 array([51, 55, 19])