In [484]: x = np.array([['b8:27:eb:d6:e3:10', '0.428s', '198'],
...: ['b8:27:eb:d6:e3:10', '0.428s', '232'],
...: ['b8:27:eb:07:65:ad', '0.796s', '180'],
...: ['b8:27:eb:07:65:ad', '0.796s', '255']],
...: dtype='<U17')
...:
Вы можете получить последний столбец с преобразованием astype
:
In [485]: x[:,2].astype(int)
Out[485]: array([198, 232, 180, 255])
In [486]: x[:,[2]].astype(int)
Out[486]:
array([[198],
[232],
[180],
[255]])
Чтобы построить структурированный массив, вам нужно предоставить список кортежей. Список списков или неструктурированный массив с составным dtype приведёт к вашему типу ошибки.
In [487]: np.array([tuple(i) for i in x],'U17,U10,int')
Out[487]:
array([('b8:27:eb:d6:e3:10', '0.428s', 198),
('b8:27:eb:d6:e3:10', '0.428s', 232),
('b8:27:eb:07:65:ad', '0.796s', 180),
('b8:27:eb:07:65:ad', '0.796s', 255)],
dtype=[('f0', '<U17'), ('f1', '<U10'), ('f2', '<i8')])
In [488]: _['f2']
Out[488]: array([198, 232, 180, 255])
Поля структурированного массива выбираются по имени.