我正在尝试随机初始化一个向量列表(或一维数组)。矢量并不总是具有相同的长度。
我重现了一个我的问题的一个小例子:
import numpy
l_vec = [5, 6, 4]
n_vec = len(l_vec)
w = numpy.array((n_vec,)).astype(object)
for i in range(len(l_vec)):
w[i] = numpy.random.rand(l_vec[i])
print i, w[i]
如果你运行它,你会看到w[0]
,没有问题:
0 [ 0.10584519 0.90833169 0.94235319 0.34320398 0.71796362]
但是,我有下一个错误(i=1
时):
IndexError: index 1 is out of bounds for axis 0 with size 1
如何更正我的代码以便能够随机初始化我的(不同长度)向量集?
如果你能告诉我这段代码有什么问题,我也很感激。
答案 0 :(得分:0)
将w=np.array(...)
替换为w=np.empty(...)
。
import numpy
l_vec = [5, 6, 4]
n_vec = len(l_vec)
w = numpy.empty((n_vec,)).astype(object)
for i in range(len(l_vec)):
w[i] = numpy.random.rand(l_vec[i])
print(i, w[i])
查看np.array
和np.empty
的文档。