使用pyhdf时如何处理py2和py3中不同类型的np.array(list)?

Posted

技术标签:

【中文标题】使用pyhdf时如何处理py2和py3中不同类型的np.array(list)?【英文标题】:How to deal with the different type of np.array(list) in py2 and py3 when using pyhdf? 【发布时间】:2019-03-26 15:58:45 【问题描述】:

我想通过 pyhdf 将某些东西保存为 hdf 中的变量。

这是我的代码:

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 在 py3 中是 <U1,运行代码的最后一行时出现此错误:

TypeError: Cannot cast array data from dtype('<U1') to dtype('S1') according to the rule 'safe'

如果我在 py3 中添加b = b.astype('S1'),也会出现同样的错误。但是,b.dtype|S1

【问题讨论】:

【参考方案1】:

尝试:

b = np.array(list(a.ljust(13)),dtype='S1')

【讨论】:

以上是关于使用pyhdf时如何处理py2和py3中不同类型的np.array(list)?的主要内容,如果未能解决你的问题,请参考以下文章

写入期望类型不是浮点数的数据库时如何处理 NaN 值?

从 DataAdapter 拉数据时如何处理 DBNull

在 Spring Boot 中验证 JWT 时如何处理 InvalidSignatureException?

想要启用可空引用类型时如何处理可选参数?

使用jquery mobile时如何处理手机中的表单导航后退按钮

使用 DataGridView 控件和 Access 数据库查询时如何处理错误?