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]])
使用 Python 2.7
1)您可以将一行或一列乘以s
这样的标量:
M[i, :] *= s
M[:, j] *= s
2)您可以像这样访问行或列:
M[i, :]
M[:, j]
3)您可以将行或列设置为这样的列表l
:
M[i, :] = l
M[:, j] = l
请注意,在最后一个中,您的列表(如果您要设置列)必须是列表中的列表(即外部列表充当行,内部列表充当列)。