这是一个numpy结构化数组,其中数组的“元素”不是单个浮点值,而是一组浮点数(在本例中为三元组)。它之所以这样做部分原因是因为在所有列不是相同数据类型的一般情况下,仍然保留了数据的原始格式(3列和3行可能是异构的)。这就是形状为
(3,)
的原因。
在这种情况下,您可以安全地转换为
(3, 3)
的同质数组,因为所有列都具有浮点数据类型。有几种不同的方法可以做到这一点,但其中最简单且最安全的方法是使用
structured_to_unstructured
实用程序函数。
更新:现在我已经在我的计算机上,这里有一个基于您的具体示例的例子:
>>> f = io.BytesIO(b"""\
... a b c
... ------------------- ---- ---
... -0.6096212422044334 2.0 3.0
... -1.2192424844088667 10.0 3.0
... -5.4865911798399 9.0 3.0
... """)
>>> t = Table.read(f, format='ascii.fixed_width_two_line')
>>> t
<Table length=3>
a b c
float64 float64 float64
------------------- ------- -------
-0.6096212422044334 2.0 3.0
-1.2192424844088667 10.0 3.0
-5.4865911798399 9.0 3.0
>>> t.as_array()
array([(-0.60962124, 2., 3.), (-1.21924248, 10., 3.),
(-5.48659118, 9., 3.)],
dtype=[('a', '<f8'), ('b', '<f8'), ('c', '<f8')])
>>> a = np.lib.recfunctions.structured_to_unstructured(t.as_array())
>>> a
array([[-0.60962124, 2. , 3. ],
[-1.21924248, 10. , 3. ],
[-5.48659118, 9. , 3. ]])
>>> a.shape
(3, 3)
Table
命令呢? - undefined