Skip to main content
 首页 » 编程设计

python之为什么我不能用 np.zeros 初始化一个数组,然后将元素更改为数组

2025年05月04日15落叶无声

在我的代码中我这样做

weights = np.zeros(len(layer_sizes)-1) 
 
for i in range(len(layer_sizes)-1): 
 
    weights[i] = np.random.rand(layer_sizes[i], layer_sizes[i+1]) 

产生错误

ValueError: setting an array element with a sequence. 

如果我只是明确地将权重设为任意数组,代码就会运行。

此代码的目的是创建一个具有给定维度的随机矩阵数组。

请您参考如下方法:

在您的情况下,np.array 仅用作不同大小矩阵的容器。您可以只使用 Python 的列表,而不是 numpy。

weights = [] 
 
for i in range(len(layer_sizes)-1): 
    weights.append(np.random.rand(layer_sizes[i], layer_sizes[i+1]))