Java: Кастинг Объекта к Типу массива

Предлагаю вам заглянуть в 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 )]

26
задан Jens 14 April 2017 в 15:05
поделиться

2 ответа

Ваш объект values, очевидно, является Object[], содержащим String[], содержащий значения.

String[] stringValues = (String[])values[0];
39
ответ дан mavrosxristoforos 28 November 2019 в 06:48
поделиться

То, что у вас есть (согласно изображению отладки), представляет собой массив объектов, содержащий массив строк. Итак, вам нужно что-то вроде:

Object[] objects = (Object[]) values;
String[] strings = (String[]) objects[0];

Вы не указали тип значений - если это уже Object [] , вы можете просто использовать (String [] ) values ​​[0] .

Конечно, даже с приведением к Object [] вы все равно можете сделать это в одном операторе, но это некрасиво:

String[] strings = (String[]) ((Object[])values)[0];
19
ответ дан 28 November 2019 в 06:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: