我尝试通过为每列命名来将 10x2 数组转换为记录。
我试过这样:
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')])
>>>
令我惊讶的是,每一行的元素都是元组而不是 int 类型的数字。
我该如何纠正这一点,并使 n 的每一行看起来像[ 9,1 ]
而不是[(9, 9), (1, 1)]
?