我試圖隨機初始化向量列表(或1D數組)。矢量並不總是具有相同的長度。Python - 初始化隨機設置不同長度的向量
我重現我的問題的一個小例子:
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
如何更正我的代碼以便能夠隨機初始化我的一組(不同長度)的向量?
如果你可以告訴我這段代碼有什麼問題,我也會很感激。
因爲'w'的長度爲1.另外,如果你打算使用'object'風格,你可能會使用普通列表而不是numpy數組。 –
再看看[numpy.array'的文檔字符串](https://docs.scipy.org/doc/numpy/reference/generated/numpy.array.html)。第一個參數不是數組的大小。 –
'w = numpy.zeros(n_vec,dtype = object)'是生成大小爲(n_vec,)的對象dtype數組的正確方法。 – hpaulj