所以,这个应该是一个非常简单的事情,但是不管出于什么原因,我没有做任何事情来将字符串数组转换为浮点数组。
我有一个两列数组,如下所示:
Name Value
Bob 4.56
Sam 5.22
Amy 1.22
我试试这个:
for row in myarray[1:,]:
row[1]=float(row[1])
而这个:
for row in myarray[1:,]:
row[1]=row[1].astype(1)
而这个:
myarray[1:,1] = map(float, myarray[1:,1])
他们似乎都做了些什么,但当我仔细检查时:
type(myarray[9,1])
我明白了
<type> 'numpy.string_'>
numpy数组中对象的类型是在初始化该数组时确定的。如果以后要更改,则必须强制转换数组,而不是该数组中的对象。
注意:上转换是可能的,对于下转换,您需要astype方法。 有关更多信息,请参见:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.array.htmlhttp://docs.scipy.org/doc/numpy/reference/generated/numpy.chararray.astype.html
除非是结构化的,否则Numpy数组必须有一个
dtype
。因为数组中有一些字符串,所以它们都必须是字符串。如果您希望有一个复杂的
dtype
,可以这样做:注意,
a
现在是一个1d structured array,其中每个元素都是类型为dtype
的元组。您可以使用字段名访问这些值:
相关问题 更多 >
编程相关推荐