5. 数组的增加,插入,删除,合并
5.1 append()
# 一维增加常量
>>> arr1 = np.arange(10,20)
[10 11 12 13 14 15 16 17 18 19]
>>> np.append(arr1,100)
[ 10 11 12 13 14 15 16 17 18 19 100]
# 一维增加一维
>>> arr2 = np.arange(20,30)
[20 21 22 23 24 25 26 27 28 29]
>>> np.append(arr1,arr2)
[10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
# 多维增加常量
>>> arr3 = np.arange(20).reshape(4,5)
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
>>> np.append(arr3,100)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 100]
# 多维增加一维
>>> np.append(arr3,arr2)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
# 多维增加多维
>>> arr4 = np.arange(20).reshape(4,5)
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
>>> np.append(arr3,arr4)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 0 1 2 3
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
5.2 insert()
# 一维数组 插入常量
>>> arr1 = np.arange(10,20)
[10 11 12 13 14 15 16 17 18 19]
>>> np.insert(arr1,0,100)
[100 10 11 12 13 14 15 16 17 18 19]
# 一维数组 插入一维数组
>>> arr2 = np.arange(20,30)
[20 21 22 23 24 25 26 27 28 29]
>>> np.insert(arr1,0,arr2)
[20 21 22 23 24 25 26 27 28 29 10 11 12 13 14 15 16 17 18 19]
# 一维数组 插入列表
>>> np.insert(arr1,0,[100,200])
[100 200 10 11 12 13 14 15 16 17 18 19]
# 多维数组 插入常量
>>> arr3 = np.arange(20).reshape(4,5)
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
>>> np.insert(arr3,0,100)
[100 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
# 多维数组 插入一维数组
>>> arr6 = np.arange(0,5)
[ 0 1 2 3 4]
np.insert(arr3,0,arr6,axis=0) # 插入一行
[[ 0 1 2 3 4]
[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
>>> arr5 = np.arange(0,4)
[ 0 1 2 3 ]
>>> np.insert(arr3,0,arr5,axis=1) #插入一列
[[ 0 0 1 2 3 4]
[ 1 5 6 7 8 9]
[ 2 10 11 12 13 14]
[ 3 15 16 17 18 19]]
注意点:
- 多维数组在指定位置上加入一个值,默认当做一维数组进行操作,返回的是一维数组
insert()
参数整理- 第一个参数:需要操作的数组
- 第二个参数:下标
- 第三个参数:需要插入的值
- 第四个参数:表示轴,0表示增加一行,1表示增加一列
- 需要插入的数据能在原始数据上做广播
5.3 delete()
# 一维数组 删除
>>> arr1
[10 11 12 13 14 15 16 17 18 19]
>>> np.delete(arr1,0)
[11 12 13 14 15 16 17 18 19]
# 多维数组 删除
>>> arr3
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
>>> np.delete(arr3,0,axis=0)
[[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
注意点:
-
一维数组 删除单个元素
-
多维数组 删除单个元素,会导致元素的结构发生变化,返回一维数组
所以,一般情况下,配合
axis
指定 删除一行(一列)
5.4 concatenate()
# 一维与一维合并
>>> arr1
[10 11 12 13 14 15 16 17 18 19]
>>> arr2
[20 21 22 23 24 25 26 27 28 29]
>>> np.concatenate((arr1,arr2))
[10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
# 多维与多维合并
>>> arr3
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
>>> arr4
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
>>> np.concatenate((arr3,arr4),axis=0) # 合并的时候增加 行
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
>>> np.concatenate((arr3,arr4),axis=1) # 合并的时候增加 列
[[ 0 1 2 3 4 0 1 2 3 4]
[ 5 6 7 8 9 5 6 7 8 9]
[10 11 12 13 14 10 11 12 13 14]
[15 16 17 18 19 15 16 17 18 19]]