我对此完全感到困惑。
从以下
import numpy as np
a = np.array([4, -9])
a[0] = 0.4
a
I 预期输出: array([ 0.4, -9])
。但它给了我
array([ 0, -9])
.
但是当我改变了dtype
to f
a = np.array([4, -9], 'f')
a[0] = 0.4
a
它给了我预期的输出array([ 0.40000001, -9. ], dtype=float32)
的文档numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
says:
dtype :数据类型,可选
数组所需的数据类型。如果未给出,则类型将被确定为保存序列中的对象所需的最小类型。该参数只能用于“向上转换”数组。对于向下转型,请使用 .astype(t) 方法。
当我初始化数组时,它会将值初始化为integers
所以当我用 a 索引数组时float
它只认识到integer
部分0.4
因此给了我0
。我是这样理解的。它是否正确?。但我仍然对这种行为感到惊讶。
Question: 这到底是怎么回事?