我是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
属性时看到的内容.