Я хочу сохранить что-то как переменную в формате hdf от pyhdf.
Это мой код:
import numpy as np
from pyhdf.SD import *
var = 'PRESSURE_INDEPENDENT_SOURCE'
vartype = 4
hdf4 = SD('./a.hdf', 2 | 4)
dset = hdf4.create(var, vartype, (1,13))
a = 'AFGL_1976'
b = np.array([list(a.ljust(13))])
dset[:] = b
Это работает в py2 и b.type
равно |S1
.
Но b.dtype
- это <U1
в py3, и я получил эту ошибку при запуске последней строки моего кода:
TypeError: Cannot cast array data from dtype('<U1') to dtype('S1') according to the rule 'safe'
Если я добавлю b = b.astype('S1')
в py3, то будет то же самоеошибка.Но b.dtype
есть |S1
.