nat*_*002 3 python arrays numpy
我正在尝试将NaN值插入numpy数组的特定索引。我不断收到此错误:
TypeError:根据规则“安全”,无法将数组数据从dtype('float64')转换为dtype('int64')
尝试使用以下代码进行操作时。
x = np.array(range(1,11))
x = np.insert(x, 5, np.nan, axis=0)
Run Code Online (Sandbox Code Playgroud)
但是,我可以NaN毫无问题地将值附加到数组的末尾。
x = np.array(range(1,11))
x = np.append(x, np.nan)
Run Code Online (Sandbox Code Playgroud)
为什么会这样,如何在数组中插入NaN值?
使用时x=np.array(range(1,11)),dtype默认情况下为int64,这可防止您插入浮点数。
最简单的是强制dtype直接浮动:
x = np.array(range(1, 11), dtype=float)
Run Code Online (Sandbox Code Playgroud)
使用np.insert,您就可以使用dtype初始数组的限制(在引擎盖下创建的临时数组使用dtype输入的)。
有了np.append,但是,你实际使用np.concatenate,其创建与“最大”的数组dtype它的投入:在你的榜样,x然后转换为float。
请注意,您可以简单地使用以下np.arange功能:
x = np.arange(1, 11, dtype=float)
Run Code Online (Sandbox Code Playgroud)