数组的添加删除去重

  1. import numpy as np

一、数组的添加

  1. #函数在数组的末尾添加值,追加操作会分配整个数组,并把原来的数组复制到新数组中
  2. #此外,输入# 数组的维度必须匹配否则将生成valueError
  3. #1、 np.append(arr,values,axis=None)
  4. '''
  5. 参数说明:
  6. arr : 输入数组
  7. values:要向arr添加的值,需要和arr形状相同(除了要添加的轴)
  8. axis:默认为None
  9. 当axis无定义的时,是横向加成,返回总是为一维数组!
  10. 当axis有定义是,分别为0和1的时候(列数要相同)
  11. '''
  12. a = np.array([[1,2,3],[4,5,6]])
  13. print(a)
  14. #向数组添加元素
  15. b = np.append(a,[7,8,9]) #返回一维数组
  16. print(b)
  17. #沿轴0 添加元素
  18. c = np.append(a,[[7,8,9]],axis=0)
  19. print(c)
  20. #沿轴1 添加元素:
  21. d = np.append(a,[[5,5,5],[7,8,9]],axis=1)
  22. print(d)
  1. [[1 2 3]
  2. [4 5 6]]
  3. [1 2 3 4 5 6 7 8 9]
  4. [[1 2 3]
  5. [4 5 6]
  6. [7 8 9]]
  7. [[1 2 3 5 5 5]
  8. [4 5 6 7 8 9]]
  1. #2、numpy.insert(arr,obj,values,axis)
  2. """
  3. 函数在给定索引之前,沿给定轴在输入数组中插入值。
  4. 如果值的类型转换为要插入,则它与输入数组不同。
  5. 插入没有原地的,函数会返回一个新数组。此外,如果未提供轴,啧输入数组会被展开
  6. """
  7. a = np.array([[1,2],[3,4],[5,6]])
  8. print(a)
  9. #未传递axis参数。在插入之前的数组会被展开
  10. b = np.insert(a,3,[11,12]) # 3是插入的位置
  11. print(b)
  12. #传递 axis参数。会广播值数组来配输入数组
  13. c = np.insert(a,1,[11,12],axis= 0) #沿轴0
  14. d = np.insert(a,1,11,axis=1) #沿轴1
  15. print(c)
  16. print(d)
  1. [[1 2]
  2. [3 4]
  3. [5 6]]
  4. [ 1 2 3 11 12 4 5 6]
  5. [[ 1 2]
  6. [11 12]
  7. [ 3 4]
  8. [ 5 6]]
  9. [[ 1 11 2]
  10. [ 3 11 4]
  11. [ 5 11 6]]

二、数组中的删除

  1. # numpy.delete(arr,obj,axis)
  2. #函数返回从输入数组中删除制定子数组的新数组。与insert()函数的情况一样,如果为提供轴参数,则输入数组将展开
  3. """
  4. 参数说明:
  5. arr: 输入数组
  6. obj:要沿制定轴删除子数组的索引,接受切片,整数嚯整数数组
  7. axis: 沿着它删除给定的子数组的轴,如果为提供,啧输入数组会被展开
  8. """
  9. a = np.arange(12).reshape(3,4)
  10. print(a)
  11. #未传递axis参数。在删除前输入数组会被展开
  12. b = np.delete(a,5)
  13. print(b)
  14. #删除每一行中的第二列
  15. c = np.delete(a,1,axis = 1)
  16. print(c)

三、数组去重

  1. # numpy.unique(arr,return_index,return_inverse,return_counts)
  2. """
  3. 参数说明:
  4. arr : 输入数组,如果不是一维数组则会展开
  5. return_index:如果为true,返回新列表元素在旧列表中的位置(下标),并以列表形式存储
  6. return_counts: 如果 为true,返回去重数组中的疏远在原数组中出现的次数
  7. """
  8. a = np.array([5,2,6,2,7,5,6,8,2,9])
  9. print(a)
  10. #第一个数组的去重值
  11. u = np.unique(a)
  12. print(u)
  13. #去重数组的索引数组
  14. indices01 = np.unique(a,return_index=True)
  15. indices01
  16. #去重数组的下标
  17. indices02 =np.unique(a,return_inverse=True)
  18. indices02
  19. #返回去重元素的重复数量
  20. indices03 = np.unique(a,return_counts = True)
  21. indices03
  1. [5 2 6 2 7 5 6 8 2 9]
  2. [2 5 6 7 8 9]
  3. (array([2, 5, 6, 7, 8, 9]), array([3, 2, 2, 1, 1, 1], dtype=int64))