创建变量... array([0。,0.,0.,...,0.,0.,0.],dtype = float32)时作为字符串添加的数据类型

时间:2018-11-14 15:18:31

标签: python

当我使用.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)

2 个答案:

答案 0 :(得分:1)

您正在正确转换类型,并且附加到数组的, dtype=float32不是附加的字符串,而只是在Numpy数组表示中显示的数据类型。

如果您这样做

print(AA)

您只会看到数组,后面没有任何字符串。

答案 1 :(得分:0)

这不是字符串:dtype('float32')。这只是表示32位浮点数dtype的一种方法。

如果数组中有字符串,则会看到:

dtype('S1')

或:

dtype('object')