python的numpy模块_Python——numpy模块

importnumpy as np#------------------------------------------------------------------------numpy的常用方法-----------------------------------------------------------#----------------------------------numpy创建矩阵----------------------------------------------------------------------#---np.array()---将括号内的列表(或元祖)转化为矩阵

a = np.array([[11,2,33],

[22,3,44]],dtype = np.int) #dtype定义数据是以浮点型(float) 还是整形(int) 形式存在

a= np.zeros((3,4)) #生成一个3行4列的矩阵,内部元素都为0

a = np.ones((3,4)) #生成一个3行4列的矩阵,内部元素都为1

#除此之外,还有empty,arrange(生成一个有序数列,如np.arrange(10,20,2):生成一维矩阵,内部元素为10—20之间步长为2的数)

a = np.arrange(12).reshape((3,4)) #生成一个3行4列的元素为1—12的矩阵————即可用reshape进行矩阵行列数的更改操作

a = np.linspace(1,10,6) #生成一个一维矩阵,元素为1—10之间均匀分布6个数

print(a)#------------------------------------------------numpy的基础运算--------------------------------------------------------

a = np.array([10,20,30,40])

b= np.arange(4)#----------------------矩阵的加法------------------

c = a-bprint(c)#------------------------------------------矩阵的乘法-------------------------------------------------------------------

c = 10*np.sin(a) #此公式表示将a 的各个元素取sin值再乘10

print(c)

a= np.array([[1,1],

[0,1]])#---reshape---设置矩阵的行和列---

b = np.arange(4).reshape((2,2))

c= a*b #两个矩阵元素逐个相乘

#---np.dot()---矩阵运算的相乘 此公式也可写为 c_dot = a.dot(b)

c_dot =np.dot(a,b)print(c)print(c_dot)#-----对矩阵内的元素进行判断---返回True或False

print(b<3) #判断矩阵中哪些元素小于3

#-----numpy中的一些内置运算方法---

a = np.random.random((2,4)) #生成一个2行4列的矩阵,元素为0—1之间的随机数(random.random()用于生成0~1之间的浮点数,不包含0和1)

print(a)#---np.sum()---矩阵元素的和---

print(np.sum(a,axis = 1)) #返回a矩阵每一列的和,即可通过axis = 1 & 0 来设置求矩阵每一列或每一行的和#---np.min()---以矩阵的形式返回矩阵元素中的最小值---

print(np.min(a,axis = 0)) #返回矩阵中每一列的最小值#---np.max()---以矩阵的形式返回矩阵元素中的最大值---

print(np.max(a,axis = 1))

A= np.arange(2,14).reshape((3,4)) #构造一个3行4列,元素为2—14的矩阵

print(A)#----np.argmin---返回矩阵中元素的最小值的索引---

print(np.argmin(A))#---np.argmax---返回矩阵中元素的最大值的索引---

#---np.avra()---返回矩阵元素的平均值---

print(np.mean(A)) #或者 np.average(A)

print(A.mean()) #或者 A.average()

#---np.median()---返回矩阵元素的中位数---

#---np.cumsum()---返回矩阵元素的累加值---

print(np.cumsum(A))#---np.diff()---返回矩阵元素的累差值---

#---np.sort()---对矩阵逐行(只在行内操作)进行排序---

#---np.transpose()---&---A.T---对矩阵进行转置---

#---np.clip()---传入最大值和最小值,矩阵中大于最大值的设置为最大值,小于最小值的等于最小值,其余元素保持不变---

#-----------------------------对矩阵元素进行索引-------------------------------------------------------------------------------#---通过索引获取array的值---

A = np.arrange(3,15)print(A[3]) #一维返回的十一个元素,多维返回的是某一行

A.reshap((3,4))print(A[1][1]) #返回第一行第一列的元素,或者A[1,1]

print(A[2,:]) #返回第二行的所有数

print(A[:,1]) #返回第一列的所有数

print(A[1,1:4]) #返回第一行第一到第四个元素

#---for循环默认迭代行---

for row inA:print(row) #将A按行打印

for column inA.T:print(column) #通过对A矩阵转置实现随矩阵行的转置

for item inA.flat:print(item) #通过 .flat 将矩阵转化为一维从而实现对矩阵每一个元素进行迭代

#-------------------------------矩阵的合并-------------------------------------------------------------------------------#--------np.vstack()---纵向合并-------

A = ([1,1,1])

B= ([2,2,2])print(type(A))print(np.vstack((A,B)))#-------np.hstack()----横向合并-----

print(np.hstack((A,B)))#----np.newaxis将A变成一个纵向的矩阵---

print(A[:,np.newaxis]) #给序列A加一个纵向的维度 , A[np.newaxis,:] 给序列A加一个横向的维度

#---np.concatenate()------多个矩阵的横向或纵向合并---

C = np.concatenate((A,B,B,A),axis = 0) #多个矩阵的纵向合并

print(C)#---------------------------------矩阵的分割----------------------------------------------------------------------------------

A = np.arange(12).reshape((3,4))#---np.split()----将矩阵进行横向或纵向分割------此方法只能进行等距分割----

B = np.split(A,2,axis = 0) #将矩阵A纵向分割为两部分,可通过设置axis = 1 设置横向分割,第二个参数设置分割成为几部分

#矩阵A列数为4 ,若用此方法将将列分为三份,则会报错#--------np.arra_split()---可进行不等距的分割

#----------np.vsplit()------对矩阵进行横向分割---

C = np.vsplit(A,3)#--------np.hsplit()---------对矩阵进行纵向分割---

D = np.hsplit(A,2)#---------------------------------矩阵的赋值------------------------------------------------------------------------------------

A = np.arange(4)#-----------等号赋值---------

B =A

C=A

D=B

A[0]= 11 #此时B,C,Dd都会跟着改变

D[1:3] = [22,33] #此时A,B,C 都会跟着改变

#-------copy()---深度复制---可解除矩阵之间的关联---

E =A.copy()

A[0]= 12 #此时E不会跟着改变

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值