Numpy 从平面列表创建结构化数组

Numpy 从平面列表创建结构化数组,numpy,multidimensional-array,Numpy,Multidimensional Array,假设我有一个平面列表,如下所示: In [97]: L Out[97]: [2010.5, 1, 2, 3, 4, 5] array((2010.5, [1, 2, 3, 4, 5]), dtype=[('A', '<f4'), ('B', '<u4', (5,))]) …我想得到这样的结构化数组: In [97]: L Out[97]: [2010.5, 1, 2, 3, 4, 5] array((2010.5, [1, 2, 3, 4, 5]), d

假设我有一个平面列表,如下所示:

In [97]: L
Out[97]: [2010.5, 1, 2, 3, 4, 5]
array((2010.5, [1, 2, 3, 4, 5]),
      dtype=[('A', '<f4'), ('B', '<u4', (5,))])
…我想得到这样的结构化数组:

In [97]: L
Out[97]: [2010.5, 1, 2, 3, 4, 5]
array((2010.5, [1, 2, 3, 4, 5]),
      dtype=[('A', '<f4'), ('B', '<u4', (5,))])
工作原理是传递一个临时数据类型,其中每个字段都有一个条目,然后使用我实际需要的数据类型查看:

In [102]: tdtp
Out[102]: 
[('a', numpy.float32),
 ('b', numpy.uint32),
 ('c', numpy.uint32),
 ('d', numpy.uint32),
 ('e', numpy.uint32),
 ('f', numpy.uint32)]

In [103]: array(tuple(L), tdtp).view(dtp)
Out[103]: 
array((2010.5, [1, 2, 3, 4, 5]), 
      dtype=[('A', '<f4'), ('B', '<u4', (5,))])
[102]中的
:tdtp
出[102]:
[('a',numpy.32),
('b',numpy.uint32),
('c',numpy.uint32),
('d',numpy.uint32),
('e',numpy.uint32),
('f',numpy.uint32)]
在[103]中:数组(元组(L),tdtp).view(dtp)
出[103]:
数组((2010.5[1,2,3,4,5]),

dtype=[('A','而不是将
元组(L)
传递给
数组
,而是传递一个嵌套值与dtype嵌套匹配的参数。对于您显示的示例,您可以传入
(L[0],L[1:])

[28]中的
:L
Out[28]:[2010.5,1,2,3,4,5]
In[29]:dtp
Out[29]:[('A','