python - 为什么python截断 float 为整数?

标签 python numpy

我想知道为什么每当我将 float 分配给 numpy 数组时,Python 都会将数字截断为整数:

import numpy as np

lst = np.asarray(list(range(10)))

print ("lst before assignment: ", lst)
lst[:4] = [0.3, 0.5, 10.6, 0.2];
print ("lst after assignment: ", lst)

输出:

lst before assignment:  [0 1 2 3 4 5 6 7 8 9]
lst after assignment:  [ 0  0 10  0  4  5  6  7  8  9]

为什么要这样做?由于您不需要在语言中指定类型,因此我无法理解为什么 numpy 在分配给数组(包含整数)之前将 float 转换为整数。

最佳答案

尝试:

lst = np.asarray(list(range(10)), dtype=float)
lst before assignment:  [0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
lst after assignment:  [ 0.3  0.5 10.6  0.2  4.   5.   6.   7.   8.   9. ]

关于python - 为什么python截断 float 为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66888063/

相关文章:

python - 如何将 (7, 3, 3, 3) 数组传递给 Fortran 子例程?

python - 在 2 个不同的 plotly 数据帧直方图上共享相同的 x 轴

python全局运算符模拟

python - pandas 中的矢量化比较

python - 定义堆积条形图中每个条形的底部

python - 无法在 Linux 上导入 Python 包

python - numpy 数组,即 (n,1) 和 (n,)

python - 在python中加入xml element.text

python - 结合 plt.plot(x,y) 与 plt.boxplot()

python - Pandas 适用于 numpy interp,尺寸问题