のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

Python numpyの使い方(1) ベクトルの生成方法・演算・主なベクトルオブジェクトの属性など

Sponsored Links

こんばんは
お元気ですか?私は元気です。

本日はNumpyの使い方について

Numpyとは?

http://www.numpy.org/より

科学計算の為の基本的なパッケージだそうです
特徴として

①array objectが提供されている(np.array)
②洗練された関数
C++Fortranのコードが利用されている
④よく使う線形代数フーリエ変換、乱数のアルゴリズムがあります。

と記載されています。

因みに計算をさせるとむちゃくちゃ早いです。

Numpyのインストール

面倒なのでpipを使う。因みにUbuntuだとapt-getでも拾えます。

sudo pip install numpy

Numpyを使おう

numpyのarray型について

>>> import numpy 
>>> numpy.array([2,3,4,5]) #リストをnumpyの配列に変換する
array([2, 3, 4, 5])
>>> numpy.array([2,3,4,5]).dtype #型
dtype('int64')
>>> numpy.array([2,3,4,5]).size #配列の要素数
4
>>> numpy.array([2,3,4,5]).ndim #次元数
1
>>> numpy.array([2,3,4,5],dtype=numpy.uint8)
array([2, 3, 4, 5], dtype=uint8)

numpyベクトルの四則演算

#定数について
>>> x + 3
array([5, 6, 7, 8])
>>> x - 3
array([-1,  0,  1,  2])
>>> x * 5
array([10, 15, 20, 25])
>>> x / 2
array([1, 1, 2, 2])
#ベクトル同士の演算
>>> x + y #ベクトルを足し算
array([12, 14, 16, 18])
>>> x - y #ベクトルの引き算
array([-8, -8, -8, -8])
>>> y / x #ベクトルの要素同士で割り算
array([5, 3, 3, 2])
>>> x * y #ベクトル同士で掛ける(行列演算ではない)
array([20, 33, 48, 65])

numpyのベクトルの生成方法

>>> numpy.zeros(10) #0埋めの配列
array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])
>>> numpy.arange(10) #0 〜 N-1まで
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> numpy.arange(4,20) #4 〜 20-1まで
array([ 4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
>>> numpy.arange(4,20,0.5) #4 〜 20-1まで 但し0.5刻み
array([  4. ,   4.5,   5. ,   5.5,   6. ,   6.5,   7. ,   7.5,   8. ,
         8.5,   9. ,   9.5,  10. ,  10.5,  11. ,  11.5,  12. ,  12.5,
        13. ,  13.5,  14. ,  14.5,  15. ,  15.5,  16. ,  16.5,  17. ,
        17.5,  18. ,  18.5,  19. ,  19.5])
>>> numpy.ones(5) #1で初期化
array([ 1.,  1.,  1.,  1.,  1.])

内積の計算

#内積
>>> numpy.dot(x,y)
166

ベクトルについてはこの程度知っていれば特に問題無いと思います。
次回は行列の演算について解説します。