Для элемента index of the row(+1)
в качестве массива мне кажется избыточным, может быть, вам вообще не нужен первый ряд. В противном случае лучший вариант для меня - использовать два массива:
gcp0 = gcp[:, 0].astype(int)
gcp = gcp[:, 1:]
Другая возможность - определить отдельные named fields
с соответствующими dtypes
для отдельных столбцов, что приближает вас к pandas
, что еще один вариант у вас есть.
gcp = np.array([(1., 6.218, 2.974, 0.),
(2., 32.881, 8.66, 0.),
(3., 38.94, 35.843, 0.),
(4., 8.52, 35.679, 0.),
(5., 52.902, 49.538, 0.)],
dtype={'names': ['index', 'a0', 'a1', 'a2'],
'formats': [int, float, float, float]})
print(gcp['index'])
# [1 2 3 4 5]