我是NumPy和SciPy的新手。
与Matlab不同,NumPy中的每个数组似乎都有一个数据类型。
假设我们有一个整数数组x
:
import numpy as np
x = np.array([1, 2, 3])
如果我想将数组转换为float,那么似乎可以进行以下工作:
y1 = x.astype('float64') # Works!
y2 = x.astype('float_') # Works!
y3 = x.astype('float') # Works!
但是我很困惑地看到以下内容在没有单引号的情况下也可以使用。
y4 = x.astype(float) # Still works!!
但是对于用于y1和y2的其他表达式,如果我省略单引号,它将不起作用:
y5 = x.astype(float64) # Doesn't work.
y6 = x.astype(float_) # Doesn't work.
因此,我对y4为什么起作用感到困惑,但是y5和y6会导致错误。有人可以启发我吗?
最佳答案
其他表达式起作用,您只需要从numpy导入类型。您不需要对float
进行此操作,因为它是Python的内置类型。
y5 = x.astype(np.float64)
y6 = x.astype(np.float_)
字符串类型输入和类型类型输入都在内部转换为
numpy.dtype
对象,这是使用ndarray.dtype
属性时看到的。关于python - NumPy中astype的有效参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34320268/