Предлагаю вам заглянуть в np.genfromtxt . Следующий фрагмент кода будет читать данные примера из вашего вопроса, хранящиеся в файле с именем data.txt
.
import numpy as np
data = np.genfromtxt('data.txt', skip_header=2, dtype=[('id', 'i8'),('label','S1'),('x','f8'),('y','f8'),('z','f8')])
print(data)
Выход
[(1, b'C', 0.01198727, -0.00384219, 0.00657878)
(2, b'H', 1.09715291, -0.00395616, 0.01333931)
(3, b'H', -0.34961231, 1.01931673, 0.00190307)
(4, b'H', -0.34427615, -0.51746302, -0.88049529)
(5, b'H', -0.35531564, -0.5132665 , 0.8915679 )]
Ваш объект values
, очевидно, является Object[]
, содержащим String[]
, содержащий значения.
String[] stringValues = (String[])values[0];
То, что у вас есть (согласно изображению отладки), представляет собой массив объектов, содержащий массив строк. Итак, вам нужно что-то вроде:
Object[] objects = (Object[]) values;
String[] strings = (String[]) objects[0];
Вы не указали тип значений
- если это уже Object []
, вы можете просто использовать (String [] ) values [0]
.
Конечно, даже с приведением к Object []
вы все равно можете сделать это в одном операторе, но это некрасиво:
String[] strings = (String[]) ((Object[])values)[0];