#python #multidimensional-array #data-structures #numpy-ndarray #mat
#python #многомерный массив #структуры данных #numpy-ndarray #мат
Вопрос:
Я пытаюсь преобразовать данные в .mat в структуру данных. Я не знаком со структурой данных и типами данных Python и не смог этого сделать. Предоставляются необработанные данные (~ 11 МБ).
https://drive.google.com/file/d/1G37OvlR0BEab9LoE2niC_q8rxB-h8h0m/view?usp=sharing
Сначала я использовал scipy.io чтобы загрузить данные mat.
mat_struc = scipy.io.loadmat('WE-CANPlumeEvolve_GEOSCHEMv1207.mat')
Затем я пытался получить доступ к временным рядам данных сопоставления, которые я хочу, с помощью
conc = mat_struc['S']['Conc']
Но структура данных довольно странная. Он состоит из массива из нескольких массивов. Не уверен, как с этим справиться, чтобы я выполнил некоторые повторные запросы и получил доступ к данным с помощью
conc = (mat_struc['S']['Conc']).item().item()
Не уверен, что это правильный способ сделать это, но кажется, что функция .item() помогает мне получить доступ к данным, но также теряет информацию об имени. Итак, я получаю cnames с помощью
cnames = mat_struc['S']['Cnames'].item()
С помощью этих двух сведений мы должны получить фрейм данных с помощью Pandas, но я не уверен, как получить доступ к значениям в conc и именам в cnames, поскольку они ndarray со странными типами. Любые предложения будут оценены!
Для людей, которые могут быть обеспокоены безопасностью данных. Вот пример того, что я получил для conc и cnames .
conc = (array([[1],
[1],
[1],
...,
[1],
[1],
[1]], dtype=uint8), array([[0.00000000e 00],
[1.11983793e-38],
[5.73291534e-38],
...,
[1.71523142e-04],
[1.70508819e-04],
[1.69944975e-04]]))
cnames = array([array(['ONE'], dtype='<U3'), array(['RO2'], dtype='<U3'),
array(['NH3'], dtype='<U3'), array(['RCOOH'], dtype='<U5')],
dtype=object)
Я ожидал чего-то подобного в фрейме данных panda.
'cname1' 'cname2'
1 1
2 2
3 3
4 4
5 5