gpt4 book ai didi

numpy - 如何使用 numpy 创建这个非常规 "identity matrix"

转载 作者:行者123 更新时间:2023-12-02 16:34:36 24 4
gpt4 key购买 nike

如何使用输入参数 n 创建以下矩阵?

n=2:

[[1, 0, 0, 0]
[0, 0, 0, 1]]

n=3:

[[1, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 1, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 1]]

n=4:

[[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]]

最佳答案

您可以创建一个全零数组并将所需的值设置为 1:

a = np.zeros((n,n*n), dtype=int)
a[np.arange(n),(n+1)*np.arange(n)] = 1

另一种方法是创建一个更大的 I(n*n) 矩阵并从中选择每个 n+1 行:

a = np.eye(n*n, dtype=int)[::n+1]

n=4 的输出:

[[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]]

对于 n=3:

[[1 0 0 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0 0]
[0 0 0 0 0 0 0 0 1]]

并且n=2:

[[1 0 0 0]
[0 0 0 1]]

关于numpy - 如何使用 numpy 创建这个非常规 "identity matrix",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62906788/

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