我有一些整数存储在np.float64
个数组和标量中,我想将它们转换为本机Pythonint
.
这是我的try :
import numpy as np
a = np.array([1, 2, 3], dtype=np.float64)
b = np.float64(4)
def float_to_int(x):
x_object = x.astype(object)
return np.floor(x_object)
# Array inputs are converted to int
print(type(float_to_int(a)[0]))
# >> <class 'int'>
# Scalar inputs are left as np.float64
print(type(float_to_int(b)))
# >> <class 'numpy.float64'>
这里有三件事我不明白:
- 为什么标量和数组的类型转换不同?
- 为什么
np.floor()
要进行类型转换(对于数组输入)? - 如何可靠地对标量和数组进行
np.float64
到int
的强制转换?