当我使用.astype()
或通过添加到np.array(list,dtype=)
来更改数组数据类型时,将得到一个附加了字符串的数组。为什么会这样呢? (下面的示例)
In [1]: A=[1,2,3]
In [2]: A=np.array(A,np.float32)
In [3]: A.dtype
Out[3]: dtype('float32')
In [4]: A
Out[4]: array([1., 2., 3.], dtype=float32)
In [5]: AA=[3,4,5]
In [6]: AA=np.array(AA)
In [7]: AA
Out[7]: array([3, 4, 5])
In [8]: AA.dtype
Out[8]: dtype('int32')
In [9]: AA.astype(np.float32())
Out[9]: array([3., 4., 5.], dtype=float32)
答案 0 :(得分:1)
您正在正确转换类型,并且附加到数组的, dtype=float32
不是附加的字符串,而只是在Numpy数组表示中显示的数据类型。
如果您这样做
print(AA)
您只会看到数组,后面没有任何字符串。
答案 1 :(得分:0)
这不是字符串:dtype('float32')
。这只是表示32位浮点数dtype的一种方法。
如果数组中有字符串,则会看到:
dtype('S1')
或:
dtype('object')