数组的添加删除去重
import numpy as np
一、数组的添加
#函数在数组的末尾添加值,追加操作会分配整个数组,并把原来的数组复制到新数组中#此外,输入# 数组的维度必须匹配否则将生成valueError#1、 np.append(arr,values,axis=None)'''参数说明:arr : 输入数组values:要向arr添加的值,需要和arr形状相同(除了要添加的轴)axis:默认为None当axis无定义的时,是横向加成,返回总是为一维数组!当axis有定义是,分别为0和1的时候(列数要相同)'''a = np.array([[1,2,3],[4,5,6]])print(a)#向数组添加元素b = np.append(a,[7,8,9]) #返回一维数组print(b)#沿轴0 添加元素c = np.append(a,[[7,8,9]],axis=0)print(c)#沿轴1 添加元素:d = np.append(a,[[5,5,5],[7,8,9]],axis=1)print(d)
[[1 2 3][4 5 6]][1 2 3 4 5 6 7 8 9][[1 2 3][4 5 6][7 8 9]][[1 2 3 5 5 5][4 5 6 7 8 9]]
#2、numpy.insert(arr,obj,values,axis)"""函数在给定索引之前,沿给定轴在输入数组中插入值。如果值的类型转换为要插入,则它与输入数组不同。插入没有原地的,函数会返回一个新数组。此外,如果未提供轴,啧输入数组会被展开"""a = np.array([[1,2],[3,4],[5,6]])print(a)#未传递axis参数。在插入之前的数组会被展开b = np.insert(a,3,[11,12]) # 3是插入的位置print(b)#传递 axis参数。会广播值数组来配输入数组c = np.insert(a,1,[11,12],axis= 0) #沿轴0d = np.insert(a,1,11,axis=1) #沿轴1print(c)print(d)
[[1 2][3 4][5 6]][ 1 2 3 11 12 4 5 6][[ 1 2][11 12][ 3 4][ 5 6]][[ 1 11 2][ 3 11 4][ 5 11 6]]
二、数组中的删除
# numpy.delete(arr,obj,axis)#函数返回从输入数组中删除制定子数组的新数组。与insert()函数的情况一样,如果为提供轴参数,则输入数组将展开"""参数说明:arr: 输入数组obj:要沿制定轴删除子数组的索引,接受切片,整数嚯整数数组axis: 沿着它删除给定的子数组的轴,如果为提供,啧输入数组会被展开"""a = np.arange(12).reshape(3,4)print(a)#未传递axis参数。在删除前输入数组会被展开b = np.delete(a,5)print(b)#删除每一行中的第二列c = np.delete(a,1,axis = 1)print(c)
三、数组去重
# numpy.unique(arr,return_index,return_inverse,return_counts)"""参数说明:arr : 输入数组,如果不是一维数组则会展开return_index:如果为true,返回新列表元素在旧列表中的位置(下标),并以列表形式存储return_counts: 如果 为true,返回去重数组中的疏远在原数组中出现的次数"""a = np.array([5,2,6,2,7,5,6,8,2,9])print(a)#第一个数组的去重值u = np.unique(a)print(u)#去重数组的索引数组indices01 = np.unique(a,return_index=True)indices01#去重数组的下标indices02 =np.unique(a,return_inverse=True)indices02#返回去重元素的重复数量indices03 = np.unique(a,return_counts = True)indices03
[5 2 6 2 7 5 6 8 2 9][2 5 6 7 8 9](array([2, 5, 6, 7, 8, 9]), array([3, 2, 2, 1, 1, 1], dtype=int64))
