numpy 如何用同一索引中的另一个新元素替换一个元素,并将前一个元素移动到下一个索引

a2mppw5e  于 2023-03-08  发布在  其他
关注(0)|答案(2)|浏览(109)

我遇到了这个问题,我想用新元素替换一个元素,而不是删除我替换的元素,我只想让它移动到下一个索引。

import numpy as np

empty_arr = [0] * 5
arr = np.array(empty_arr)

inserted = np.insert(empty_arr, 1, 3)
inserted = np.insert(empty_arr, 1, 4) 

#Output: 
[0 4 0 0 0 0]

我不知道正确的语法,但我只想将元素3替换为4

#Expected Output:
[0 3 4 0 0 0] #move the element 4 to next index
xqnpmsa8

xqnpmsa81#

您将第一次插入的结果放在inserted变量中,但第二次插入时从原始数组开始,并覆盖上一个结果。
您应该从上一个结果开始第二次插入:

inserted = np.insert(empty_arr, 1, 3)
inserted = np.insert(inserted, 1, 4)

顺便说一句,你一定要使用numpy数组吗?常规的Python列表似乎更适合:

empty_arr = [0] * 5
empty_arr.insert(1,3)
empty_arr.insert(1,4)

print(empty_arr)

[0, 4, 3, 0, 0, 0, 0]
  • 请注意,如果希望结果中4出现在3之后,则必须在索引1处按相反顺序插入它们,或者在索引1处插入3之后在索引2处插入4。*
plupiseo

plupiseo2#

import numpy as np

empty_arr = [0] * 5
arr = np.array(empty_arr)

empty_arr = np.insert(empty_arr, 1, 3)
empty_arr = np.insert(empty_arr, 1, 4) 

#output
array([0, 4, 3, 0, 0, 0, 0])

相关问题