我正在尝试将 NaN
值插入到numpy数组的特定索引中 . 我一直收到这个错误:
TypeError:根据规则'safe',无法将数组数据从dtype('float64')转换为dtype('int64')
尝试使用以下代码时 .
x = np.array(range(1,11))
x = np.insert(x, 5, np.nan, axis=0)
但是,我可以将 NaN
值附加到数组的末尾,没有任何问题 .
x = np.array(range(1,11))
x = np.append(x, np.nan)
为什么这样,我如何在我的数组中插入NaN值?
1 回答
对于
x=np.array(range(1,11))
,dtype
默认为int64
,这会阻止您插入浮点数 .最简单的方法是强制
dtype
直接浮动:使用
np.insert
,您只能使用初始数组的dtype
(在引擎盖下创建的临时数组使用输入的dtype
) .但是,使用
np.append
,您实际上正在使用np.concatenate
,它使用其输入的"largest"dtype
创建一个数组:在您的示例中,x
然后被转换为float
.请注意,您只需使用
np.arange
函数: