在 numpy.insert 数组的第 n 个位置插入元素

Insert element at nth position in Array with numpy.insert

我尝试将 np.nan 个值插入数组的第 n 个位置。期望的输出:

array(['1', 'nan', 'nan', '2', test', '3'])

我试过这个代码:

position = [1,2]
array= np.array([1,2,'test', 3])
array= np.insert(array, position, np.nan)

但它是在索引 1 和 3 处插入值:

array(['1', 'nan', '2', 'nan', 'test', '3'])

我该如何解决这个问题?

位置应该是[1, 1]。位置2在2和'test'之间,1在1和2之间。插入它们的索引是索引在初始数组中的位置,而不是它们结束的位置。

两个 np.nan 的插入将一起发生。因此,如果您使用 [1,2],则索引 1 将介于 12 之间,而索引 2 将介于 2'test' 之间。 如果要插入连续值,位置需要为[1,1]

import numpy as np

position = [1,1]
array = np.array([1,2,'test', 3])
array = np.insert(array, position, np.nan)
print(array)

输出:

['1' 'nan' 'nan' '2' 'test' '3']

numpy.insert() 函数在给定索引前插入值

对于给定的数组:

[1, 2,'test',3]
 0  1   2    3   -> index

在位置=[1,2]插入将在原始数组中的索引1(值=2)和索引2(值='test')之前插入值,即

[1, ___, 2, ___, 'test',3]

为了让两个nan都插入到索引1之前,写成

import numpy as np
position = [1,1]
array= np.array([1,2,'test', 3])
array= np.insert(array, position, np.nan)
print(array)
 

你会得到想要的结果:

['1' 'nan' 'nan' '2' 'test' '3']

Note: This position array is not the index of the new values you want to insert, it is the index before which you want to insert the new values