np.insert(arr, obj, values, axis=None)
在指定轴的指定index上插入数据。
obj尽量使用中括号括起来的形式。
- 当只有一个整数,[N],将values整体插入在axis轴上N前。
arr = np.arange(9).reshape(3,3)
arr2 = np.arange(10,16).reshape(3,2)
arr
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
arr2
array([[10, 11],
[12, 13],
[14, 15]])
np.insert(arr,[1],arr2,axis=1)
array([[ 0, 10, 11, 1, 2],
[ 3, 12, 13, 4, 5],
[ 6, 14, 15, 7, 8]])
- 当是一系列整数时,[N1,N2,N3,N4…],每一个N都是arr在axis上的index,会把values均分并按照中括号内的index插入。就是N1,N2,N3,N4整数数量应该和values在axis方向上的形状一样,这样就会把values每一行或每一列插入指定位置。N1,N2,N3,N4大小需要在arr的axis形状范围内,大小和顺序不限定。
np.insert(arr,[1,0],arr2,axis=1)
array([[11, 0, 10, 1, 2],
[13, 3, 12, 4, 5],
[15, 6, 14, 7, 8]])
np.append(arr, values, axis=None)
根据给定的轴向arr添加元素。
- 当不指明axis时,会把arr数组和values先flattern。然后将values添加到后面,返回一维数组。
- 当给定axis为1后者0时,沿着给定轴方向添加元素。此时,除了给定的轴方向,其他维度必须保持形状一致。
**Tips:**感觉这个就是np.concatenate的低配版。因为,它只能操作两个数组,而np.concatenate是不限制的,处理a sequence of arrays。
举例:
arr = np.arange(9).reshape(3,3)
arr2 = np.array([[1,2],[2,2],[3,2]])
np.append(arr,arr2,axis=1)
array([[0, 1, 2, 1, 2],
[3, 4, 5, 2, 2],
[6, 7, 8, 3, 2]])