Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-随机初始化一组不同长度的向量_Python_Arrays_Numpy_Random - Fatal编程技术网

Python-随机初始化一组不同长度的向量

Python-随机初始化一组不同长度的向量,python,arrays,numpy,random,Python,Arrays,Numpy,Random,我试图随机初始化一个向量列表(或1D数组)。向量并不总是具有相同的长度 我重现了我的问题的一个小例子: 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],没有

我试图随机初始化一个向量列表(或1D数组)。向量并不总是具有相同的长度

我重现了我的问题的一个小例子:

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
)我有此错误:

索引器错误:索引1超出大小为1的轴0的界限

如何更正代码以随机初始化(不同长度)向量集

如果您能告诉我这段代码有什么问题,我也会很感激。

w=np.array(…)
替换为
w=np.empty(…)

查看
np.array
np.empty
的文档,将
w=np.array(…)
替换为
w=np.empty(…)


查看
np.array
np.empty

的文档,因为
w
的长度为1。另一方面,如果要使用
对象
样式,那么最好使用普通列表而不是numpy数组。第一个参数不是数组的大小。
w=numpy.zero(n_-vec,dtype=object)
是创建大小为(n_-vec,)的对象数据类型数组的正确方法。。。。或者
numpy.empty(n\u nvec,dtype=object)
如果以后要填写所有值。
np.empty
使用object dtype将所有值初始化为
None
。我无法想象它能节省任何时间。因为
w
的长度为1。另一方面,如果要使用
对象
样式,那么最好使用普通列表而不是numpy数组。第一个参数不是数组的大小。
w=numpy.zero(n_-vec,dtype=object)
是创建大小为(n_-vec,)的对象数据类型数组的正确方法。。。。或者
numpy.empty(n\u nvec,dtype=object)
如果以后要填写所有值。
np.empty
使用object dtype将所有值初始化为
None
。我无法想象它能节省任何时间。非常感谢。我将查看文档,因为我从未见过
np.empty()。我将查看文档,因为我从未见过
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])