我有一个包含单个值(标量)的numpy数组,我想将其转换为相应的Python数据类型。例如:
import numpy as np
a = np.array(3)
b = np.array('3')
我可以通过强制转换将它们转换为int
和str
:
a_int = int(a)
b_str = str(b)
但我需要事先知道变量类型。我想把 a
转换为整数并把 b
转换为字符串,而不需要显式地进行类型检查。有没有简单的方法实现这个功能?
如此处所述,使用obj.item()
方法获取Python标量类型:
import numpy as np
a = np.array(3).item()
b = np.array('3').item()
print(type(a)) # <class 'int'>
print(type(b)) # <class 'str'>
import numpy as np
a = np.array(3)
b = np.array('3')
a_int = a.tolist()
b_str = b.tolist()
print type(a_int), type(b_str)
应该可以工作
a = '1'
a_res = (str if type(a) == type(1) else int)(a)
print(type(a_res))
b = 1
b_res = (str if type(b) == type(1) else int)(b)
print(type(b_res))
生成:
>>>
<class 'int'>
<class 'str'>
正如您所看到的,相同的代码用于转换a和b。