Numpy:数组的操作

一:数组的追加:
1追加一个元素,会对多维数组进行降维操作,无论是一维数组还是多维数组,那么返回的也是一维数组,追加以后需要重新调成维度大小。

import numpy as np 
s1=np.array([1,3,5,7,9,2,4,6,8,0])
s2=s1.reshape(2,5)
s3=np.append(s1,11)
print(s3)
结果:[ 1  3  5  7  9  2  4  6  8  0 11]

2追加一维数组,如果是一维数组,则不需要axis参数,
多维数组的追加,降维成一维数组,将元素追加到末尾

import numpy as np 
s1=np.array([1,3,5,7,9,2,4,6,8,0])
s2=s1.reshape(2,5)
s3=np.append(s1,[12,13,14])
s4=np.append(s2,[12,13])
print(s3)
print(s4)
结果:
[ 1  3  5  7  9  2  4  6  8  0 12 13 14]
[ 1  3  5  7  9  2  4  6  8  0 12 13]

3 一维数组追加一维数组,追加完成之后,将要添加的一维数组迭代取出,加入到本数组的 末尾

  s5=np.append(s3,s4)
  print(s5)
  结果:
  [ 1  3  5  7  9  2  4  6  8  0 12 13 14  1  3  5  7  9  2  4  6  8  0 12 13]

二:数组的插入(insert)
1一维数组与多维数组的关系

import numpy as np
#insert:的底层格式: #np.insert(arr, obj, values, axis=None)     
s1 = np.arange(10,20)
s2=s1.reshape(2,5)
print(s1)
s3=np.insert(s1,0,100,axis=0)     一维数组在索引为0的位置上插入值100
print(s2)
s4=np.insert(s2,0,100,axis=0)		多维数组在行索引为0的位置上插入一行values:100
s5=np.insert(s2,1,100,axis=1)		多维数组在列索引为1的位置上插入一列values:100
print('s4=s%',%s4)
print('s5=s%',%s5)
结果:
s1=[10 11 12 13 14 15 16 17 18 19]
s3=[100  10  11  12  13  14  15  16  17  18  19]
s2=[[10 11 12 13 14]
 	[15 16 17 18 19]]
s4=[[100 100 100 100 100]
 	[ 10  11  12  13  14]
	[ 15  16  17  18  19]]
s5=[[ 10 100  11  12  13  14]
	[ 15 100  16  17  18  19]]
注意:如果插入的元素是‘100’,是可以的,但是‘a'是不行的
 还有:如果是有行列参数,注意元素的插入位置,如果多维数组没有指定行列的情况下,默认降维成一维数组,插入在指定的位置
 axis这个参数表示:0表示列,1表示行
 s6=np.insert(s2,1,100)
 print(s6)
 结果:
 [ 10 100  11  12  13  14  15  16  17  18  19]

三:数组的删除
1,delete函数的使用问题

import numpy as np
s1 = np.arange(10,20)
s2 = s1.reshape((2,5))
s3 = np.delete(s1,9,axis=0)
print(s3)
结果
[10 11 12 13 14 15 16 17 18]
一维数组的删除,注意点不能使用axis=1,单个元素的删除
一维数组删除,删除多个元素,如果多个下标需要删除,打包成一个列表,下标的位置可以打乱,也可写一个不存在的下标,但是不要瞎写
    s4 = np.delete(s1,[8,9,7,100],axis=0)    (索引为100的并不存在)
    print(s4)

多维:
# 多维数组删除一个元素的情况
s5 = np.delete(s2,0)
print(s5)
# 多维数组删除一个元素的情况

    s5 = np.delete(s2,0,axis=0)  
    print(s5)
    结果:删除第一行的数组
    [[15 16 17 18 19]]
    # 多维数组删除一个元素的情况
    s5 = np.delete(s2,0,axis=1)
    print(s5)
    结果:删除第一列元素        
   	[[11 12 13 14]
     [16 17 18 19]]
    s6 = np.delete(s3,[0,1],axis=0)
    print(s6) 
    结果删除第一行和第二行的元素
  	[]

四,数组的合并
数组们必须有相同的大小

    # 一维数组
	    s1 = np.arange(10,20)
	    s2 = np.arange(30,40)
	# 二维数组
	    s3 = s1.reshape((2,5))
	    s4 = s2.reshape((2,5))
 # 一维数组的合并,不能axis=1
	    s5 = np.concatenate((s1,s2),axis=0)
	    print(s5)
	    [10 11 12 13 14 15 16 17 18 19 30 31 32 33 34 35 36 37 38 39]
 # 多维数组的合并,0代表列
	    s6 = np.concatenate((s3,s4),axis=0)
	    print(s6)
	    [[10 11 12 13 14]
		 [15 16 17 18 19]
		 [30 31 32 33 34]
		 [35 36 37 38 39]]
	    s7 = np.concatenate((s3,s4),axis=1)
	    print(s7)
	   [[10 11 12 13 14 30 31 32 33 34]
		[15 16 17 18 19 35 36 37 38 39]]

五、集合的问题
1 去重操作

    import numpy as np
    list1=[1,1,1,1,2,3,4,5,12,12,13,7,8,9,9,9]
    print(len(list1))
    s1 = np.array(list1)
    print(s1)
    # 一维数组的去重操作
    s2 = np.unique(s1)
    print(s2)
    s3 = s1.reshape((4,4))
    print(s3)
    # 多维数组的去重操作,降维成一维数组
    s4 = np.unique(s3)
    print(s4)
    结果:
	[ 1  1  1  1  2  3  4  5 12 12 13  7  8  9  9  9]           s1
	[ 1  2  3  4  5  7  8  9 12 13]								s2
	[[ 1  1  1  1]												s3
	 [ 2  3  4  5]
	 [12 12 13  7]
	 [ 8  9  9  9]]
	[ 1  2  3  4  5  7  8  9 12 13]                             s4

2并集:
求并集的情况

    s5 = np.arange(16)
    print(s5)
    s6 = s5.reshape((4,4))
    print(s6)
    # 一维数组的并集,去重并且排序
    s7 = np.union1d(s1,s5)
    s8 = np.union1d(s3,s6)
    # 多维数组求并集降维,去重并且排序

3 求交集

    # 一维数组求交集
    s9 = np.intersect1d(s1,s5)
    print(s9)
    s10 = np.intersect1d(s1,s5,assume_unique=True)
    print(s10)
    # 多维数组         降维并去重
    s11 = np.intersect1d(s3,s6)
    print(s11)
    注释:
    assume_unique : bool
    If True, the input arrays are both assumed to be unique, which
    can speed up the calculation.  Default is False.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值