用 Python 中的另一个数组替换对角线元素
Replacing diagonal elements with another array in Python
我有两个矩阵,A
和 P
。我想用 P
的元素替换 A
的对角线元素。附上所需的输出。
A=np.array([[0, 1, 1, 0],
[1, 0, 0, 1],
[1, 0, 0, 1],
[0, 1, 1, 0]])
P=np.array([[3, 4],
[5, 6]])
期望的输出:
array([[3, 1, 1, 0],
[1, 4, 0, 1],
[1, 0, 5, 1],
[0, 1, 1, 6]])
使用 fill_diagonal
和扁平 P 作为对角线的值:
np.fill_diagonal(A, P.ravel())
注意。操作到位
输出:
array([[3, 1, 1, 0],
[1, 4, 0, 1],
[1, 0, 5, 1],
[0, 1, 1, 6]])
我有两个矩阵,A
和 P
。我想用 P
的元素替换 A
的对角线元素。附上所需的输出。
A=np.array([[0, 1, 1, 0],
[1, 0, 0, 1],
[1, 0, 0, 1],
[0, 1, 1, 0]])
P=np.array([[3, 4],
[5, 6]])
期望的输出:
array([[3, 1, 1, 0],
[1, 4, 0, 1],
[1, 0, 5, 1],
[0, 1, 1, 6]])
使用 fill_diagonal
和扁平 P 作为对角线的值:
np.fill_diagonal(A, P.ravel())
注意。操作到位
输出:
array([[3, 1, 1, 0],
[1, 4, 0, 1],
[1, 0, 5, 1],
[0, 1, 1, 6]])