I'm trying to insert NaN values to specific indices of a numpy array. I keep getting this error:
TypeError: Cannot cast array data from dtype('float64') to dtype('int64') according to the rule 'safe'
When trying to do so with the following code.
x = np.array(range(1,11))
x = np.insert(x, 5, np.nan, axis=0)
However, I can append NaN values to the end of the array with no problem.
x = np.array(range(1,11))
x = np.append(x, np.nan)
Why is this and how can I insert NaN values in my array?
解决方案
With x=np.array(range(1,11)), the dtype by default is int64, which prevents you to insert a float.
The easiest is to force the dtype to float directly:
x = np.array(range(1, 11), dtype=float)
With np.insert, you're limited to the dtype of the