読み進めるうちに順次増やしていく(予定)
numpy
numpy.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0) numpy.array([0,1,2])#1次元配列 numpy.array([[0,1,2],[3,4,5]])#2次元配列
dtypeの配列を作成する。1次元の場合objectに[要素]。2次元の場合objectに[ [要素]]。
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
区間[start,stop]でnum個の等間隔な値を要素に持つ1次元配列を返す。
numpy.zeros(shape,dtype=float,order='C') numpy.ones(shape,dtype=float,order='C') numpy.empty(shape,dtype=float,order='C') numpy.zeros(5) #要素数5の1次元配列 numpy.zeros((2,3)) #形状が(2,3)の2次元配列
要素が0/1/未初期化のshape,typeの配列を返す。shapeはintかintのタプル。
numpy.r_[a,b]
a,bが2次元配列:a,bを縦方向に連結する(2次元配列)
a,bが1次元配列:a,bを連結(1次元配列)
numpy.c_[a,b]
a,bが2次元配列:a,bを横方向に連結する(2次元配列)
a,bが1次元配列:a,bそれぞれを列として横方向に連結(2次元配列)
numpy.dot(a,b) a.dot(b) a@b
行列積を返す。1次元配列の場合自動的に解釈(左側にあれば横ベクトル、右側にあれば縦ベクトルと解釈)
numpy.random
numpy.random.rand(d1,d2,...,dn) numpy.random.rand(2,3) #(2,3)の2次元配列を返す numpy.random.rand(3) #要素数3の1次元配列を返す numpy.random.rand() #浮動小数点を返す
指定された次元の配列を返す。指定がない場合単なる浮動小数点を返す。要素は範囲[0,1)のランダムな浮動小数点。
numpy.random.randint(low,high=None,size=None,dtype='l') numpy.random.randint(5,size=(3,3)) #(3,3)の配列を返す。要素は[0,5) numpy.random.randint(5,size=3) #要素数3の1次元配列を返す。
範囲[low,high)のランダムな整数を返す。high=Noneの場合範囲は[0,low)。sizeを指定すると配列を返す。
numpy.linalg
numpy.linalg.inv(a) #aの逆行列を返す numpy.linalg.solve(a,b) #ax=bの解(x=inv(a)b)を返す
scipy.linalg
scipy.linalg.lu_factor(a) #aのLU分解(a=PLU)P,LUを返す scipy.linalg.lu_solve((lu,p),b) #PLUx=bの解(x=inv(PLU)b)を返す
numpy.ndarrayの属性
shape #配列の次元のタプル ndim #配列の次元数 size #配列の要素数 T #配列の転置(2次元以上の場合。1次元の場合そのまま)
numpy.ndarrayのメソッド
reshape(shape) #要素は同じで配列の形状がshapeである配列を返す resize(new_shape) #配列の形状をnew_shapeに変更する ravel() #1次元の配列を返す
sum([axis]) #合計 mean([axis]) #平均 max([axis]) #最大値 min([axis]) #最小値
axis=0で行方向、axis=1で列方向 ※ndarrayで1次元配列と行数が1or列数が1の2次元配列は別の物
ブロードキャスト
ndarrayに対して演算を行う場合に次元数や形状を自動的に調整する
numpy.exp(a) numpy.log(a) numpy.sqrt(a)
配列aの要素それぞれに対して演算を行う。 演算子(+、*、**、>=)などについても同様