gpt4 book ai didi

python - numpy 中是否有函数可以替换 numpy 数组的下对角线和上对角线值?

转载 作者:行者123 更新时间:2023-12-02 06:59:54 24 4
gpt4 key购买 nike

为了替换主对角线,我使用了np.fill_diagonal:

matrix = np.zeros((4, 4), float)
main = np.array([2,2,2,2])
np.fill_diagonal(matrix, main)

但我还需要替换主对角线旁边的上下对角线:

upper=np.array([1,1,1])
lower=np.array([7,7,7])

获取:

matrix=[[2 1 0 0]
[7 2 1 0]
[0 7 2 1]
[0 0 7 2]]

谢谢

最佳答案

通过一些智能切片,np.fill_diagonal 也可以做到这一点:

>>> np.fill_diagonal(matrix[:-1, 1:], upper)
>>> np.fill_diagonal(matrix[1:, :-1], lower)
>>> matrix
array([[ 2., 1., 0., 0.],
[ 7., 2., 1., 0.],
[ 0., 7., 2., 1.],
[ 0., 0., 7., 2.]])

关于python - numpy 中是否有函数可以替换 numpy 数组的下对角线和上对角线值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10768007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com