NumPy中astype的有效参数

cha*_*com 8 python arrays types numpy

我是NumPy和SciPy的新手.与Matlab不同,似乎NumPy中的每个数组都有一个数据类型.

假设我们有一个整数数组x:

import numpy as np
x = np.array([1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

如果我想将数组转换为float,那么它似乎如下工作:

y1 = x.astype('float64')  # Works!
y2 = x.astype('float_')   # Works!
y3 = x.astype('float')    # Works!
Run Code Online (Sandbox Code Playgroud)

但是我有点不好意思看到以下内容也可以在没有单引号的情况下工作.

y4 = x.astype(float)      # Still works!!
Run Code Online (Sandbox Code Playgroud)

但是对于用于y1和y2的其他表达式,如果我省略单引号,则它不起作用:

y5 = x.astype(float64)  # Doesn't work.
y6 = x.astype(float_)   # Doesn't work.
Run Code Online (Sandbox Code Playgroud)

所以,我有点困惑为什么y4工作,但y5和y6导致错误.有人可以启发我这个吗?

Mar*_*gur 7

其他表达式工作,您只需要从numpy导入类型.您不需要这样做,float因为它是Python的内置类型.

y5 = x.astype(np.float64)
y6 = x.astype(np.float_)
Run Code Online (Sandbox Code Playgroud)

字符串类型和类型类型输入都在numpy.dtype内部转换为对象,这是您在使用ndarray.dtype属性时看到的内容.