我有一个赋值,我得到一个元组列表,其中包含数字字符串,int或float例如,我得到一个包含(ID,Class,Grade,Height)
的元组:
A = [('123121','24',23,12.0),(23667,64,78,15.5)]
我还得到了一个元组列表,这样每个元组就包含了我想要转换的东西,以及要转换成什么。例如,我得到这个列表:types=[('ID','int'),(grade,'S15'),('height','float'),('class','int')]
现在,我不知道类型元组中的每个值是什么,它可能是int,float,dtype,无论什么。我搜索了一下,发现了这段代码:
from typing import TypeVar, Type
T = TypeVar('T')
def cast(input, cast_type: Type[T]):
casted_value = cast_type(input)
return casted_value
它似乎对int,float,string很好,但对于S15
,这是一个numpty dtype,它不工作,我得到错误:
casted_value = cast_type(input)
TypeError: Preliminary-API: Flexible/Parametric legacy DType '<class 'numpy.dtype[bytes_]'>' can only be instantiated using `np.dtype(...)`
在我的例子中,转换后打印A后的输出应该是:
A = [(123121,b'24',23.0,12),(23667,b'64',78.0,15)]
如何将某个数据类型转换为给定但未知数据类型?
1条答案
按热度按时间zqdjd7g91#
我不知道你想要什么,但是下面是如何用这个元组列表和dtype规范来创建一个
structured array
。使用匹配的元组列表,基本的
array
函数产生:它的完整
repr
显示是:更紧凑的
str
:这是(2,)形数组,有4个字段。
arr[0]
得到一条记录。arr['height']
获取一个字段。