当前位置: 移动技术网 > IT编程>脚本编程>Python > Python关于numpy的使用总结

Python关于numpy的使用总结

2018年03月22日  | 移动技术网IT编程  | 我要评论

大树懒,4339小游戏,河南考试信息网

Python关于numpy的使用总结

    #24,sorted排序
    ll=[8,0,3,6,1,0,5,3,8,9]
    sorted(ll,reverse=True) #降序
    sorted(ll,reverse=False)
    --------------------------------------------------------------
    #25,linalg.svd 奇异值分解
    A=np.mat([[1,0,0,0,2],[0,0,3,0,0],[0,0,0,0,0],[0,4,0,0,0]])
    U,S,VT=np.linalg.svd(A)
    U
    S
    VT
    --------------------------------------------------------------
    #26,random.rand
    A=np.mat([[1,0,0,0,2],[0,0,3,0,0],[0,0,0,0,0],[0,4,0,0,0]])
    A[:,1]
    rr=np.random.rand(3,3)  #随机获取3*3个0-1之间的数字
    rr
    rr-0.5
    2*(rr-0.5)
    --------------------------------------------------------------
    #27,arange
    delta=0.25
    x=np.arange(-3.0,3.0,delta) #获取指定起始位置,指定步长的一系列数
    x
    --------------------------------------------------------------
    #28,nonzero()
    x=[[1,0,0,0,2],[0,0,3,0,0]]
    x
    nz=np.nonzero(x)#函数返回矩阵中非0元素的位置
    nz   #nz返回值的意思:第一行是所有非零数所在行值,第二行是所有非零数所在列值
    nz[0]
    --------------------------------------------------------------
    #29,获取指定位置的元素
    A=np.mat([[1,0,0,0,2],[0,0,3,0,0],[0,0,0,0,0],[0,4,0,0,0]])
    sample=A[0,:] #获取第0行的所有元素
    sample
    sample[0]
    A=np.mat([[1,0,0,0,2],[0,0,3,0,0],[0,0,0,0,0],[0,4,0,0,0]])
    ind=[0,1,3]#根据ind序列索引获取矩阵A中的数据
    ing=[0,2,1]
    A[ind,ing]
    --------------------------------------------------------------
    #30,zip
    ll=[1,2,3,4,5,6]
    ll[3:6]+ll[0:3] #可以互换指定区域的位置
    l1=[1,2,3]
    l2=[4,5,6]
    for x,y in zip(l1,l2):  #成对获取x,y的值
        print(x,y)
    --------------------------------------------------------------
    #31,chr函数,获取指定字符
    for i in range(65,70):
        print(np.str(chr(i)))
    --------------------------------------------------------------
    #32,random.shuffle
    ll=[[i] for i in range(9)]
    ll
    np.random.shuffle(ll) #shuffle 函数随机打乱列表中的元素顺序
    ll
    --------------------------------------------------------------
    #33,vdotd点积,返回两个向量的点积
    ll=[1,2,3]
    l2=[4,5,6]
    ll=[l1,l2]
    np.vdot(l1,l2)
    np.dot(l1,l2)
    np.mat(l1)*np.mat(l2).T
    np.mat(ll)
    #vdot和dot的区别
    #对于向量来说,他们两个的点积结果是相同的;
    #对于矩阵来说,dot是矩阵的点积,而vdot是对应位置的元素乘积求和
    --------------------------------------------------------------.
    #34,次方的计算
    3*2**2  #次方的优先级较高
    --------------------------------------------------------------
    #35 ,max函数
    ll=[3,4,6,2,89,9,3,2]
    max(ll)
    l2=[[3,4,5,6,3,89,3],[4,6,3,2,92,2,4]]
    max(l2[0])
    max(l2)
    --------------------------------------------------------------
    #36,mgrid函数,开始值,结束值,
    np.mgrid[-5:5:3j]
    np.mgrid[-5:5:3]
    np.mgrid[-5:5:3j,-5:5:3j]
    np.mgrid[-5:5:3,-5:5:3]
    --------------------------------------------------------------
    #37,ogrid函数
    np.ogrid[-5:5:3j]
    np.ogrid[-5:5:3]
    np.ogrid[-5:5:3j,-5:5:3j]
    np.ogrid[-5:5:3,-5:5:3]
    #ogrid和mgrid不同的是一个数据阵,一个的第三个参数如果是实数说明是步长,如果是虚数,ogrid第一各部分产生一列,第二部分产生一行多列

   --------------------------------------------------------------
   #38,random函数
    print(np.random.seed(1))
    np.random.uniform(-1,1,5)
    np.random.random()
    np.random.random(5)
    np.random.rand(2,3)
    np.random.randint(5,10)
    np.random.randint(5,10,size=(5,5))
   --------------------------------------------------------------
   #39,tofile,fromfile
    a=np.arange(0,12)
    a.shape=3,4
    a
    a.tofile("a.bin")
    b=np.fromfile("a.bin",dtype=np.float)
    b
    a.dtype
    b=np.fromfile("a.bin",dtype=np.int32)
    b
    b.shape=3,4
    b
    #Note:(1) 读入的时候设置正确的dtype和shape 才能保证数据一致,并且tofile函数不管数组
    # 的排列顺序是c语言格式的韩式Fortran语言格式,统一c语言输出。
    #(2)sep关键字参数:此外如果fromfile和tofile指定sep关键字参数的话,数组
    # 将以文本格式输入输出[可以使用notepad++]打开查看,不过数据是一行显示
   --------------------------------------------------------------
   #40,numpy.load 和numpy.save
    a=np.arange(12)
    b=np.add.accumulate(a)
    c=a+b
    f=open("result.npy","wb")
    np.save(f,a)
    np.save(f,b)
    np.save(f,c)
    f.close()
    f=open("result.npy","rb")
    np.load(f)
    np.load(f)
    np.load(f)
    #Note ;(1)文件要保存为.npy文件类型,否则会出错
    #(2)保存为numpy专用二进制格式后,就不能用notepad++打开(乱码)看了,
    # 如果你想将多个数组保存在一个文件中的话,可以使用numpy.saves函数,该
    # 函数的第一个参数是文件名,其后面都是需要保存的数组,也可以使用关键词
    #起一个名字,非关键词参数在传递数组时会自动起名为arr_0、arr_1、arr_2、
    #输出的是以个压缩文件
    a=np.array([[1,2,3],[4,5,6]])
    b=np.arange(0,1.0,0.1)
    c=np.sin(b)
    np.savez("result.npz",a,b,sin_array=c)
    r=np.load("result.npz")
    r["arr_0"]
    r["arr_1"]
    r["sin_array"]
   --------------------------------------------------------------
   #41,permuta tion函数
    np.random.permutation(10)
    np.random.permutation([1,4,9,12])
    arr=np.arange(9).reshape((3,3))
    arr
    np.random.permutation(arr) #如果是多维数组,混淆一维
    --------------------------------------------------------------
    #42,complex构造复数
    np.complex(0,100)
    np.complex(1,-1)
    --------------------------------------------------------------
    #43,求范数
    a=np.array([[complex(1,-1),3],[2,complex(1,1)]])
    a
    np.linalg.norm(a,ord=2)
    np.linalg.norm(a,ord=1)
    np.linalg.norm(a,ord=np.inf) 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网