You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用np.eye/np.identity生成单位矩阵报TypeError如何解决

报错原因

触发该类型错误的核心是API入参使用错误:

  • np.eye()、np.identity()的第一个必填参数为整数标量,作用是指定生成单位矩阵的阶数
  • 代码中直接将二维数组Z作为参数传入,numpy无法将整个数组转换为单个标量索引值,因此抛出报错。
修复方案

你需要传入目标矩阵的维度整数值,而非数组本身。对于示例中5行5列的数组Z,取其行数(方阵中行数等于列数)作为入参即可,修正后可正常运行的完整代码如下:

import numpy as np
Z = np.array([
[0,2,0,4,4],
[0,0,3,0,0],
[0,0,0,1,0],
[0,2,0,0,0],
[0,0,0,0,0]
])

# 以下两种写法二选一即可
I = np.eye(Z.shape[0])
I = np.identity(Z.shape[0])

两个API的细微差异供参考:

  • np.identity(n) 只能生成n×n的标准方阵单位矩阵
  • np.eye(N, M=None, k=0) 灵活性更高,支持生成N行M列的非方阵类单位矩阵,也可通过k参数设置对角线的偏移位置。

内容的提问来源于stack exchange,提问作者user18737194

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 21:01:23