【NumPy中数组相关方法】

目录

一、数组的复制

二、修改数组维度

三、数组的拼接

四、数组的分隔

五、数组的转置

六、数组中的函数


一、.数组的复制

import numpy as np
x=np.arange(1,13)
a=x.reshape((3,4))
'''
#获取第一、二行,第一二列
sub_a=a[:2,:2]
#对第一行第一列值进行修改
sub_a[0,0]=20 #此时原数组也发生改变
print(a)
'''
#利用copy方法实现原数组数据不发生改变
sub_aa=np.copy(a[:2,:2])
sub_aa[0,0]=40
print(a)

 二、修改数组维度

import numpy as np
a=np.arange(1,13) #创建一维数组
b=a.reshape((3,4)) #将一维数组修改为二维
c=a.reshape((2,3,2)) #将一维数组修改为三维
#利用np.reshape进行修改
bb=np.reshape(a,(4,3))
cc=np.reshape(a,(2,2,3))
d=bb.reshape(12) #将多维修改为一维
'''
d=bb.reshape(-1)
d=bb.ravel()
d=bb.flatten()
此三种方式都可以将多维数组修改为一维
'''

3.数组的拼接

水平拼接:

利用hstack函数可以将两个或多个数组水平拼接在一起,数组的水平组合要求所有参与水平组合的数组的行数必须相同,否则会抛出异常

垂直拼接:

利用vstack函数可以将两个或多个数组垂直组合起来

concatenate函数拼接:连接沿现有轴的数组序列

#导入模块
import numpy as np
'''
#创建两个数组
a=np.array([[1,2,3],[4,5,6]])
b=np.array([[11,12,13],[14,15,16]])
c=np.hstack([a,b])  #水平拼接
d=np.vstack([a,b])  #垂直拼接
#使用concatenate,二维拼接两个轴
r1=np.concatenate((a,b),axis=0) #axis=0,默认垂直方向拼接
r2=np.concatenate((a,b),axis=1) #axis=1,水平方向拼接
'''
#用concatenate,三维拼接三个轴
a=np.arange(1,13).reshape(1,2,6)
b=np.arange(21,33).reshape(1,2,6)
r1=np.concatenate((a,b),axis=0) #拼接出形状为(2,2,6)
r2=np.concatenate((a,b),axis=1) #拼接出形状为(1,4,6)
r3=np.concatenate((a,b),axis=2) #拼接出形状为(1,2,12)

四、数组的分隔

利用numpy.split函数进行数组的分隔

np.hsplit:水平方向分割

np.vsplit:垂直方向分割

#导入模块
import numpy as np
'''
#创建一维数组
a=np.arange(1,13)
#调用函数分割
b=np.split(a,4) #传递的4,整数进行平均分割成四个数组
c=np.split(a,[3,5]) #传递数组,分成三份,数组前、后,以及数组
'''
#创建二维数组
a=([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
r1,r2=np.split(a,2,axis=0)  #按照垂直方向分割
m1,m2=np.split(a,2,axis=1)  #按照水平方向分割
#按照位置分割
n1,n2=np.split(a,[2],axis=1) #按位置分,前两列一组,后一列一组

五、数组的转置

利用transpose函数进行数组的转置

#导入numpy模块
import numpy as np
#创建二维数组
a=np.arange(1,13).reshape(2,6)
print(a)
#调用transpose函数进行二维数组转置a[i][j]---a[j][i]
b=a.transpose() #或者b=np.transpose(a)
print(b)
#对于二维数组也可以使用.T方法
print(a.T)
#调用transpose函数进行三维数组转置,默认是a[i][j][k]---a[k][j][i]
a=a.reshape(2,2,3)
b=np.transpose(a)
print(b)
#自定义转换(2,2,3)
c=np.transpose(a,(1,2,0)) #此时c的形状是(2,3,2)

六、数组中的函数

参与运算的两个对象,都是ndarray,并且形状相同,那么彼此之间可以进行加add(),减subtract(),乘multiply(),除divide()运算

#导入numpy模块
import numpy as np
a=np.arange(9).reshape(3,3)
b=np.array([10,10,10])
#加法运算
print(np.add(a,b))
print(a+b)
#减法
print(np.subtract(b,a))
print(b-a)
#out参数的使用,通用函数指定输出结果的用法
y=np.empty((3,3),dtype=np.int)
np.multiply(a,2,out=y) #a中每个元素乘以2
#除法
print(np.divide(a,b))

三角函数:算出数组中元素三角函数值

numpy.sin(a),numpy.cos(a) ,numpy.tan(a)

四舍五入:

numpy.around(a,decimals)

a表示数,decimals表示舍入的小数位数,默认为0

向上取整:

numpy.ceil()

向下取整:

numpy.floor()

power函数:将第一个输入数组中的元素作为底数,计算它与第二个输入的元素的幂

#power函数中out的用法
import numpy as np
a=np.arange(5)
b=np.zeros(10)
np.power(a,2,out=b[:5])#b中有10个位置,要指定结果存放的位置
print(b)

numpy.median()函数,计算数组的中位数

numpy.mean()函数,计算数组的平均数

numpy.argmax()函数,返回最大值下标

numpy.argmin()函数,返回最小值下标

import numpy as np
#一维数组的中位数,平均数
a=np.array([1,2,3,4,5])
print(np.median(a))
print(np.mean(a))
#二维数组的中位数,平均数通过axis指定轴
b=np.arange(1,13).reshape(3,4)
print(np.median(b,axis=0)) #垂直方向求中位数
print(np.median(b,axis=1)) #水平方向求中位数
print(np.mean(b,axis=0)) #垂直方向求平均数
print(np.mean(b,axis=1)) #水平方向求平均数

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

In my opinion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值