我有一个混合了不同dtypes的numpy数组:浮点数,整数和字符串。我想将所有浮点数和整数转换为浮点数,同时保持非数字项不变。目前,当我这样做时:
array = np.array(['1', '2', '3', 'string'])
array.astype(np.float64)
我收到以下错误:
ValueError: could not convert string to float: 'string'
我希望输出看起来像这样:
np.array([1.0, 2.0, 3.0, 'string'])
我也尝试过pd.is_numeric(),但无法解决。这是可行的,还是违反了numpy数组的规则?
答案 0 :(得分:2)
您不可能获得理想的结果,因为np.arrays只能具有一种数据类型(通常是数值类型之一,例如float,int,...)...除非您选择通用类型{{1 }},但随后您失去了所有的numpy优缺点(即,所有对数值进行的优化)。那你为什么要这么做?
如果这确实是您想要的,请尝试以下操作:
dtype=object