あなたは行列にベクトルを追加したいならば、あなたはそれが行くべき場所を選択することで、そうすることができます:manualから
In [155]: ma = np.matrix(
...: [[ 1., 1., 1.],
...: [ 1., 1., 1.],
...: [ 1., 1., 1.]])
In [156]: mb = np.matrix([[1,2,3]])
In [157]: ma[1] += mb # second row
In [158]: ma
Out[158]:
matrix([[ 1., 1., 1.],
[ 2., 3., 4.],
[ 1., 1., 1.]])
In [159]: ma[:,1] += mb.T # second column
In [160]: ma
Out[160]:
matrix([[ 1., 2., 1.],
[ 2., 5., 4.],
[ 1., 4., 1.]])
しかし、私はあることを警告したいのですが前述のようにnumpy.matrix
を使用していません。実際には、np.ones
がndarray
を返し、matrix
を返さないので、numpy.ndarray
を使用しています。
加えることは同じですが、いくつかの行列を作成し、あなたは彼らが異なる挙動を示すことがわかります。それを説明する
In [161]: ma*mb
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
ValueError: matrices are not aligned
In [162]: mb*ma
Out[162]: matrix([[ 6., 6., 6.]])
In [163]: ma*mb.T
Out[163]:
matrix([[ 6.],
[ 6.],
[ 6.]])
In [164]: aa = np.ones((3,3))
In [165]: ab = np.arange(1,4)
In [166]: aa*ab
Out[166]:
array([[ 1., 2., 3.],
[ 1., 2., 3.],
[ 1., 2., 3.]])
In [167]: ab*aa
Out[167]:
array([[ 1., 2., 3.],
[ 1., 2., 3.],
[ 1., 2., 3.]])
感謝を。そのコンセプトはまだ理解されていませんでしたが、エラーメッセージで既にそれを指摘していましたが、「ValueError:オペランドを図形とともにブロードキャストできませんでした...」 – andershqst