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','