np.diag(np.ones((1, 2))[0, :], 2) 为什么需要加上[0, :]才能得到想要的结果
时间: 2024-05-24 10:13:00 浏览: 110
Python之Numpy模块100道测试题.docx
np.ones((1, 2))创建的是一个(1,2)的二维数组,取其中的第0行(即[0, :])才能得到长度为2的一维数组[1, 1],作为np.diag的第一个参数,再加上第二个参数2,则得到一个2x2的对角矩阵,其余元素为0,即
[[0, 0, 1, 0],
[0, 0, 0, 1],
[0, 0, 0, 0],
[0, 0, 0, 0]]
如果不加[0, :],则np.diag的第一个参数将会是一个(2,)的一维数组[1, 1],得到的结果将会是一个2x2的对角矩阵,其余元素为0,即
[[1, 0],
[0, 1]]
与期望的结果不符。
阅读全文