import numpy as np
M = np.matrix([
[-1,-2,-3],
[-4,-5,-6]
])
print(M)
i
或列j
与标量相乘?答案 0 :(得分:7)
要乘以特定列:
M[:,colnumber] *= scalar
或者一行:
M[rownumber,:] *= scalar
当然,以可迭代方式访问它们是一回事:
col_1 = M[:,1]
虽然,这会为您提供一个新矩阵,而不是list
。虽然,老实说,我似乎无法用matrix
个对象来计算所有这些操作 - 而这些操作看起来并不像matrix
类型。您是否有理由使用matrix
代替array
个对象?如果您想要矩阵乘法,可以始终使用np.dot(array_mat1, array_mat2)
答案 1 :(得分:6)
您可以使用slicing来完成此操作:
>>> 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]])
答案 2 :(得分:0)
使用Python 2.7
1)您可以将行或列乘以某个标量s
,如下所示:
M[i, :] *= s
M[:, j] *= s
2)您可以像这样访问行或列:
M[i, :]
M[:, j]
3)您可以将行或列设置为列表l
,如下所示:
M[i, :] = l
M[:, j] = l
请注意,在最后一个列表中,您的列表(如果您要设置列)必须是列表中的列表(即外部列表充当行,内部列表充当列)。