我尝试通过为每列指定名称来将10x2数组转换为记录。将numpy数组转换为numpy记录数组
我尝试这样:
t = arange (10)
>>> n = dstack([t,
roll (t, 1),
roll (t, -1)])[0]
... ... >>>
>>> n = n[:,1:3]
>>> n
array([[9, 1],
[0, 2],
[1, 3],
[2, 4],
[3, 5],
[4, 6],
[5, 7],
[6, 8],
[7, 9],
[8, 0]])
>>> nt = [('left', int), ('right', int)]
>>> array (n, nt)
array([[(9, 9), (1, 1)],
[(0, 0), (2, 2)],
[(1, 1), (3, 3)],
[(2, 2), (4, 4)],
[(3, 3), (5, 5)],
[(4, 4), (6, 6)],
[(5, 5), (7, 7)],
[(6, 6), (8, 8)],
[(7, 7), (9, 9)],
[(8, 8), (0, 0)]],
dtype=[('left', '<i8'), ('right', '<i8')])
>>>
要我surprize,每一行的元素是元组,而不是int类型的数字。
我该如何纠正这一点,并使n的每一行看起来像[ 9,1 ]
而不是[(9, 9), (1, 1)]
?
可能重复一个结构化数组](http://stackoverflow.com/questions/3622850/converting-a-2d-numpy-array-to-a-structured-array) – askewchan
我读过这篇文章,尽管我努力去理解它并将其转换如我所愿,我无法在那里找到答案。另一方面,迄今为止收到的答案是有效的。 – alinsoar
是的,从现有数组中重构数据的构造有点奇怪,因为您将过去单独的元素放入一个元素元组中。 – askewchan