元组的Python数组

2024-04-26 02:34:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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

有人能帮忙吗?


Tags: innumpyanforoutput错误数字数组
3条回答
numpy.array([(0.0, C[x]) for x in range(n)])

看看结构化数组(也称为“记录数组”):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')])

怎么样:

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

顺便说一句,“元组数组”对我来说没什么意义。如果你指的是一个对象数组(可能是matlab中的一个单元数组?)我建议使用列表而不是数组。

相关问题 更多 >