gpt4 book ai didi

python - 如何从 numpy 中的现有数组创建对角线数组

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:02 25 4
gpt4 key购买 nike

我正在尝试从以下位置创建一个对角线 numpy 数组:

[1,2,3,4,5,6,7,8,9]

预期结果:

[[ 0,  0,  1,  0,  0],
[ 0, 0, 0, 2, 0],
[ 0, 0, 0, 0, 3],
[ 4, 0, 0, 0, 0],
[ 0, 5, 0, 0, 0],
[ 0, 0, 6, 0, 0],
[ 0, 0, 0, 7, 0],
[ 0, 0, 0, 0, 8],
[ 9, 0, 0, 0, 0]]

执行此操作的有效方法是什么?

最佳答案

您可以使用 integer array indexing设置输出的指定元素:

>>> import numpy as np
>>> a = [1,2,3,4,5,6,7,8,9]
>>> arr = np.zeros((9, 5), dtype=int) # create empty array
>>> arr[np.arange(9), np.arange(2,11) % 5] = a # insert a
>>> arr
array([[0, 0, 1, 0, 0],
[0, 0, 0, 2, 0],
[0, 0, 0, 0, 3],
[4, 0, 0, 0, 0],
[0, 5, 0, 0, 0],
[0, 0, 6, 0, 0],
[0, 0, 0, 7, 0],
[0, 0, 0, 0, 8],
[9, 0, 0, 0, 0]])

关于python - 如何从 numpy 中的现有数组创建对角线数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43924652/

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