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

如何用Numpy创建8×8对角为1-100随机自然数的零矩阵?

创建8×8对角线随机自然数数组的解决方案

核心问题纠正

你提到的random.radiant是拼写错误,正确的NumPy随机整数生成函数是np.random.randint;而np.random.rand生成的是0到1之间的浮点数,不符合自然数需求。

方法一:直接生成对角矩阵(最简洁)

利用np.diag()函数直接生成指定对角线值的矩阵,步骤如下:

import numpy as np

# 生成8个1~100的随机整数(自然数)
diagonal_values = np.random.randint(low=1, high=101, size=8)
# 创建8×8矩阵,对角线为随机值,其余元素为0
target_array = np.diag(diagonal_values)
print(target_array)

方法二:结合np.eye实现(符合提示要求)

如果必须使用np.eye,可以先生成对角为1的单位矩阵,再替换对角线值:

import numpy as np

# 生成随机对角值
diagonal_values = np.random.randint(1, 101, 8)
# 生成8×8单位矩阵,将对角线替换为随机值
target_array = np.eye(8) * diagonal_values
# 转换为整数类型(因为np.eye默认生成浮点数)
target_array = target_array.astype(int)
print(target_array)

注意事项

  • 在Databricks中确保已正确导入NumPy(上述代码开头的import numpy as np不可省略)
  • np.random.randint的high参数是开区间,所以要写101才能包含100

内容的提问来源于stack exchange,提问作者Mery p.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 15:40:48