Python-在数组中替换和插入

Python-在数组中替换和插入,python,arrays,numpy,replace,insert,Python,Arrays,Numpy,Replace,Insert,假设我有一张清单: lst = np.array([1,2,3,4]) 我想用[5,6,7]替换3,所以我得到了 lst = [1,2,5,6,7,4] 我试过: lst[2] = [5,6,7] 但这会给我一个错误: 设置具有序列的数组元素您不能在适当的位置更改numpy数组的大小。您需要通过连接其他两个数组的切片“手动”创建适当大小的新numpy数组: >>> x = np.array([1,2,3,4]) >>> y = np.concatenat

假设我有一张清单:

lst = np.array([1,2,3,4])
我想用
[5,6,7]
替换
3
,所以我得到了

lst = [1,2,5,6,7,4]
我试过:

lst[2] = [5,6,7]
但这会给我一个错误:
设置具有序列的数组元素

您不能在适当的位置更改numpy数组的大小。您需要通过连接其他两个数组的切片“手动”创建适当大小的新numpy数组:

>>> x = np.array([1,2,3,4])
>>> y = np.concatenate((x[:2], [5, 6, 7], x[3:]))
>>> y
array([1, 2, 5, 6, 7, 4])
或者,您可以将阵列转换为列表,并在列表上进行替换:

>>> x = np.array([1,2,3,4])
>>> y = list(x)
>>> y[2:3] = [5, 6, 7]
>>> y = np.array(y)
>>> y
array([1, 2, 5, 6, 7, 4])
(请注意,与
x[2]=3等操作不同,这两个选项都会创建一个新的独立数组,而不是对
x
进行变异)

Numpy阵列与大小更改操作不兼容;唯一的方法是制作一个全新的数组。如果需要更改对象的大小,请不要使用numpy数组;如果需要使用numpy阵列,请找到一种最小化或避免更改其大小的方法