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

如何向numpy.random.randn传入1维维度数组生成正态分布张量

你写的代码报错是因为np.random.randn要求传入多个独立的整数位置参数分别对应每个维度的长度,不支持直接传入存储维度的数组作为单个参数。

方案1:参数解包(兼容旧版本numpy)

在数组前加*对维度数组做位置参数解包即可:

import numpy as np
dims = np.array((1,2,3,4))
A = np.random.randn(*dims)
# 也可以先转成元组更稳妥,避免部分旧版本numpy的兼容问题
# A = np.random.randn(*tuple(dims))

解包操作会把dims里的元素拆成独立的参数传入randn,和你直接写randn(1,2,3,4)效果完全一致,适配n为任意值的场景。

方案2:使用新版numpy随机生成器(更推荐)

numpy目前更推荐使用新的随机数生成器接口,它的size参数原生支持直接传入维度数组/元组,不需要解包:

import numpy as np
dims = np.array((1,2,3,4))
rng = np.random.default_rng()
A = rng.normal(size=dims)

这个接口生成的随机数统计特性更优,代码可读性也更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:27:05