如何将字符串值转为NumPy数组元素类型?求type(a[0][0])(value)替代方法
将字符串转换为NumPy数组元素类型的替代方法
当然有几种更贴合NumPy使用习惯、也更稳健的替代方法,不需要通过取数组元素的类型来转换:
方法1:直接调用dtype的type属性
NumPy的dtype对象自带type属性,对应该数据类型的NumPy/Python类型类,直接用它就能完成转换:
import numpy as np a = np.array([[0, 1, 0, 1], [1, 1, 0, 0]]) value = "1" type_a = a.dtype converted_value = type_a.type(value) print(converted_value, type(converted_value)) # 输出示例:1 <class 'numpy.int64'>
方法2:用np.array指定目标dtype转换
把字符串包装成数组并指定目标dtype后,再提取标量即可。这种方式也适合批量转换多个字符串:
# 转换为NumPy标量 converted_value = np.array(value, dtype=type_a) # 若需要Python原生类型,加.item() converted_value_py = np.array(value, dtype=type_a).item()
方法3:使用np.asarray转换
np.asarray和np.array逻辑类似,但会优先复用已有内存,单个值转换时效果一致:
converted_value = np.asarray(value, dtype=type_a).item()
这些方法比type(a[0][0])(value)更可靠——比如当数组为空时,a[0][0]会直接报错,而基于dtype的方法完全不受影响。
内容的提问来源于stack exchange,提问作者Cezar
相关产品推荐
相关产品推荐

