Python——numpy模块

import numpy 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,arange(生成一个有序数列,如np.arrange(10,20,2):生成一维矩阵,内部元素为10—20之间步长为2的数)
a = np.arange(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-b
print(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 in A:
    print(row)    #将A按行打印

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

for item in A.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不会跟着改变

 

posted @ 2020-10-06 21:34  呱呱、、  阅读(132)  评论(0编辑  收藏  举报