この間numpyを使っていてハマったのですが、numpyのmatrix
とmat
は違うものみたいです。本家のドキュメントを見てみるとmat
はmatrix(data, copy=False)
と等価というふうに書いていて、コピーされないようになっているみたいです。これはどういうことかというと、
>>> import numpy as np
>>> m = np.matrix([[1.0, 2.0],[3.0, 4.0]])
>>> m
matrix([[ 1., 2.],
[ 3., 4.]])
>>> a = np.matrix(m)
>>> a[0, 0] = 5.0
>>> a
matrix([[ 5., 2.],
[ 3., 4.]])
>>> m
matrix([[ 1., 2.],
[ 3., 4.]])
>>> #aを変更してもmは変わらない
>>>
>>> b = np.mat(m)
>>> b[0, 0] = 6.0
>>> b
matrix([[ 6., 2.],
[ 3., 4.]])
>>> m
matrix([[ 6., 2.],
[ 3., 4.]])
>>> #bを変更するとmも変わる
ちょっとハマったので、書いてみました。