1

我正在尝试在python中编写一个for循环来创建一个应该看起来像的元组数组

Output = [(0.0,C[0]),(0.0,C[1]),(0.0,C[2]), .... , (0.0,C[n-1])]

其中C是一些其他数字的数组。

如果我尝试(适用于 matlab 的东西)

for n in xrange(0,N):
    Output[n]=numpy.asarray( [0.0,C[n]] )

然后我得到错误ValueError: setting an array element with a sequence

有人可以帮忙吗?

4

3 回答 3

4
numpy.array([(0.0, C[x]) for x in range(n)])
于 2012-04-24T18:33:36.997 回答
0

看看结构化数组(又名“记录数组”):http ://docs.scipy.org/doc/numpy/user/basics.rec.html

你可以定义这样的事情:

>>> x = np.zeros((2,),dtype=('i4,f4,a10'))
>>> x[:] = [(1,2.,'Hello'),(2,3.,"World")]
>>> x
array([(1, 2.0, 'Hello'), (2, 3.0, 'World')],
     dtype=[('f0', '>i4'), ('f1', '>f4'), ('f2', '|S10')])
于 2013-07-15T16:53:26.450 回答
0

怎么样:

output = np.zeros((N, 2), dtype='float')
output[:, 1] = C[:N]

顺便说一句,“元组数组”对我来说没有多大意义。如果您的意思是对象数组(也许是 matlab 中的单元格数组?)我建议使用列表而不是数组。

于 2012-04-24T18:52:14.720 回答