import numpy as np
M = np.matrix([
[-1,-2,-3],
[-4,-5,-6]
])
print(M)
i
特定の行または列j
にスカラーを掛ける方法は?- 特定の列または行にリストとしてアクセスする方法は?
- (適切な長さの)リストを指定して、特定の列または行を設定する方法は?
特定の列を乗算するには:
M[:,colnumber] *= scalar
または行:
M[rownumber,:] *= scalar
そしてもちろん、イテラブルとしてそれらにアクセスすることは同じことです:
col_1 = M[:,1]
ただし、これにより、 ではなく、新しい行列が得られますlist
。正直なところ、オブジェクトを使ったこれらの操作のすべてを完全に理解することはできないようですが、これらは実際には型操作matrix
のようには見えません。オブジェクトの代わりにmatrix
使用している理由はありますか? 行列の乗算が必要な場合は、いつでも使用できますmatrix
array
np.dot(array_mat1, array_mat2)
これを実現するためにスライスを使用できます。
>>> M = np.matrix([
... [-1,-2,-3],
... [-4,-5,-6]
... ])
>>> M[1,:] *= 2 # multiply all elements in second row by 2
>>> M
matrix([[ -1, -2, -3],
[ -8, -10, -12]])
>>> M[:,1] *= 2 # multiply all elements in second column by 2
>>> M
matrix([[ -1, -4, -3],
[ -8, -20, -12]])
特定の列または行をリストに割り当てるには:
>>> M[:,1] = [[0], [0]] # note the nested lists to reassign column
>>> M
matrix([[ -1, 0, -3],
[ -8, 0, -12]])
>>> M[1,:] = [2, 2, 2] # flat list to reassign row
>>> M
matrix([[-1, 0, -3],
[ 2, 2, 2]])
Python2.7の使用
s
1)次のように、行または列にスカラーを掛けることができます。
M[i, :] *= s
M[:, j] *= s
2)次のように行または列にアクセスできます。
M[i, :]
M[:, j]
l
3)次のように行または列をリストに設定できます。
M[i, :] = l
M[:, j] = l
最後のリストでは、リスト(列を設定している場合)はリスト内のリストである必要があることに注意してください(つまり、外側のリストは行として機能し、内側のリストは列として機能します)。