• 我相信“交警雨中护送高考生”是真,“交警雨中护送高考生”反被该高考生家长投诉是假。 2019-04-16
  • 14名消防员日巡逻28公里 洗冷水澡 2019-04-10
  • 靶壕有了“蓝军”,百发百中的“神枪手”练起来 2019-04-10
  • 不是秀强大了,别人就会来做朋友,这逻辑不对 2019-04-01
  • 候选企业:中国石油呼和浩特石化公司 2019-03-26
  • 航天员沙漠野外生存训练完美收官!为第一天团打call 2019-03-25
  • 请问,建立市场经济后,原计划经济哪里去?改革后,我们还在实行计划经济,为何没有提及? 2019-03-25
  • 构建年轻干部梯次培养链 2019-03-19
  • 孙实的专栏作者中国国家地理网 2019-03-15
  • 湖南师范大学举行研究阐释党的十九大精神国家社科基金重大专项学术研讨会 2019-03-15
  • [雷人]蠢货!土地处于不同的城市和地段,关联的资源不一样,价值也不一样。不然给咱俩同样面积的土地,咱的在北上广深,你的在边远山区,你干么? 2019-03-08
  • 国际社会持续热议上合青岛峰会:上合组织发展进入新阶段 彰显中国领导力 2019-03-08
  • 珍惜野生动物频现甘孜境内 生态环境质量不断提升 2019-03-06
  • "新经济形势下金融创新的变革与机遇"论坛 2019-03-06
  • 频道栏目
    神奇公式秒杀全国11选5 > 程序开发 > Web开发 > Python > 正文
    python数据分析之numpy基础代码展示
    2018-07-27 14:40:38         来源:SunChao3555的博客  
    收藏   我要投稿

    神奇公式秒杀全国11选5 www.2zfa.com python数据分析之numpy基础代码展示

    #coding:utf-8
    import scrapy
    import xlwt, lxml
    import re, json,time
    import matplotlib.pyplot as plt
    import numpy as np
    import pylab
    from scipy import linalg
    
    '''
    points=np.arange(-5,5,0.01)
    xs,ys=np.meshgrid(points,points)
    print(xs)
    
    z=np.sqrt(xs **2+ys**2)
    print(z)
    print(np.arange(32))
    plt.imshow(xs,cmap=plt.cm.gray)
    # plt.colorbar()
    plt.title("haha")
    pylab.show()
    '''
    
    
    '''利用数组进行数据处理 将条件逻辑表述为数组运算
    列表推导的局限性
     纯python代码,速度不够快
     无法应用于高维数组
    where 和where的嵌套
    '''
    # l=[i for i in np.arange(4).reshape(2,2)]
    # #np.where(condition,x,y)如果条件成立执行x,否则执行y。另外,x和y可以继续写成np.where()的形式构成嵌套
    # x=[i for i in np.arange(11,20)]
    # y=[j for j in np.arange(21,30)]
    # print(l)
    # print(np.array(l))
    # result=np.where(np.linalg.det(l)<0,x,y)
    # print(result)
    # print((np.array(l)>0).sum())
    # bool=np.array(l)>0
    # print(bool)
    # print(bool.any())#有一个为True则返回True
    # print(bool.all())#有一个为False则返回False
    '''
    关于zip函数的一点解释,zip可以接受任意多参数,然后重新组合成1个tuple列表。
    zip([1, 2, 3], [4, 5, 6], [7, 8, 9])
    返回结果:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
    '''
    
    
    '''
    #排序sort()
    #找到位置在5%的数字
    large_arr=np.random.randn(1000)
    large_arr.sort()
    print(large_arr[int(0.05*len(large_arr))])
    
    #去重以及其他集合运算
    '''
    
    '''
    unique(x) 计算x中的唯一元素,并返回有序结果
    intersectld(x,y) 计算x和y中的公共元素,并返回有序结果
    unionld(x,y)计算x和y的并集,并返回有序结果
    inld(x,y)得到一个表述“x的元素是否包含于y”的布尔数组
    setdiffld(x,y) 集合的差,即元素在x中且不在y中
    setxorld(x,y) 集合的异或,即存在于一个数组中但不同时存在于两个数组中的元素
    '''
    set_arr=np.array([1,1,2,3,4,5])
    print(np.unique(set_arr))
    set_arr2=np.unique(set_arr)
    print(np.intersect1d(set_arr,set_arr2))
    
    '''
    #文件的输入输出
    #arr=np.loadtxt('file.txt',delimiter=',') 读取csv
    arr=np.arange(10)
    #np.save('some_array',arr)
    print(np.load('some_array.npy'))
    
    np.savez('array_archive.npz',a=arr,b=arr)#多个数组压缩存储
    arch=np.load('array_archive.npz')
    print(arch['a'])
    '''
    
    '''
    线性代数 常用的numpy.linalg函数
    diag 以一维数组的形式返回方阵的对角线(或非对角线元素),或将一维数组转换为方阵(非对角线元素为0)
    dot 矩阵乘法
    trace 计算对角线元素的和
    det 计算矩阵行列式
    eig 计算方阵的特征值和特征向量
    inv 计算方阵的逆
    pinv 计算矩阵的Moore-Penrose伪逆
    qr 计算QR分解
    svd 计算奇异值分解
    solve 解线性方程Ax=b,其中A为一个方阵
    lstsq 计算Ax=b的最小二乘解
    '''
    
    #数组重塑 reshape()
    '''
    #数组的合并与拆分
    concatenate 最一般化的连接,沿一条轴连接一维数组 [两个数组连接的axis需要规格一致]
    vstack,row_stack 以面向行的方式对数组进行堆叠(沿轴0)
    hstack 以面向行的方式对数组进行堆叠(沿轴1)
    column_stack 类似于hstack,但会先将一维数组转换为二维列向量
    dstack 以面向“深度”的方式对数组进行堆叠(沿轴2)
    split 沿指定轴在指定的位置拆分数组
    hsplit,vsplit,dsplit split的便捷化函数,分别沿着轴0,1,2进行拆分
    '''
    # r_对象
    # c_对象
    
    arr1=np.arange(1,7).reshape((2,3))
    arr2=np.arange(7,13).reshape((2,3))
    arr3=np.arange(13,28).reshape((5,3))
    #
    # print(arr1)
    # print(arr2)
    #连接
    # print(np.concatenate([arr1,arr2],0))
    # print(np.concatenate([arr1,arr2],1))
    # # print(np.concatenate([arr1,arr3],0))
    #
    # #堆叠
    # print(np.vstack((arr1,arr2)))#垂直堆叠
    # print(np.hstack((arr1,arr2)))#水平堆叠
    
    #拆分
    print(np.split(arr3,[0,1],axis=1))
    arr4=np.random.randn(5,5)
    print(arr4)
    first,second,third=np.split(arr4,[1,3],axis=0)#其中[1,3]为下刀的位置
    # first,second,third=np.split(arr4,[1,3],axis=1)
    print(first)
    print('888888888888')
    print(second)
    print('888888888888')
    print(third)
    print('888888888888')
    
    #堆叠辅助类
    
    arr5=np.arange(6).reshape((3,2))
    arr6=np.random.randn(3,2)
    #r_用于按行堆叠
    print(np.r_[arr5,arr6])
    
    #c_用于按列堆叠
    print(np.c_[np.r_[arr5,arr6],np.arange(6)])
    
    #切片直接转为数组
    print(np.c_[1:6,-10:-5])
    
    #元素的重复操作
    print(arr5.repeat(3))#按元素
    print(arr5.repeat([1,2,3,4,5,6]))#按元素,长度要匹配
    
    #repeat(n,axis)指定轴
    print(arr5.repeat(2,0))#按行
    print(arr5.repeat(2,1))#按列
    
    #tile
    print(np.tile(arr5,(2)))#贴瓷砖
    print(np.tile(arr5,(2,3)))#指定每个轴的tile次数
    
    #距离矩阵计算
    #给定mxn阶矩阵X,满足X=[x1,x2,...,xn],这里第i列向量是m维向量。  求nxn矩阵,使得Dij=||Xi-Xj||^2
    X = np.array([range(0, 500), range(500, 1000)])
    m, n = X.shape
    
    t = time.time()
    D = np.zeros([n, n])
    for i in range(n):
     for j in range(i + 1, n):
      D[i, j] = linalg.norm(X[:, i] - X[:, j]) ** 2
      D[j, i] = D[i, j]
    print(time.time() - t)
    
    t = time.time()
    D = np.zeros([n, n])
    for i in range(n):
     for j in range(i + 1, n):
      d = X[:, i] - X[:, j]
      D[i, j] = np.dot(d, d)
      D[j, i] = D[i, j]
    print(time.time() - t)
    
    t = time.time()
    G = np.dot(X.T, X)
    D = np.zeros([n, n])
    for i in range(n):
     for j in range(i + 1, n):
      D[i, j] = G[i, i] - G[i, j] * 2 + G[j,j]
      D[j, i] = D[i, j]
    print(time.time() - t)
    
    t = time.time()
    G = np.dot(X.T, X)
    H = np.tile(np.diag(G), (n, 1))
    D = H + H.T - G * 2
    print(time.time() - t)

     

    点击复制链接 与好友分享!回本站首页
    上一篇:python简单面试题:输入某年某月某日,判断这一天是这一年的第几天
    下一篇:利用Python实现权限设置的详细教程
    相关文章
    图文推荐
    点击排行

    关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 神奇公式秒杀全国11选5

    版权所有: 神奇公式秒杀全国11选5--致力于做实用的IT技术学习网站

  • 我相信“交警雨中护送高考生”是真,“交警雨中护送高考生”反被该高考生家长投诉是假。 2019-04-16
  • 14名消防员日巡逻28公里 洗冷水澡 2019-04-10
  • 靶壕有了“蓝军”,百发百中的“神枪手”练起来 2019-04-10
  • 不是秀强大了,别人就会来做朋友,这逻辑不对 2019-04-01
  • 候选企业:中国石油呼和浩特石化公司 2019-03-26
  • 航天员沙漠野外生存训练完美收官!为第一天团打call 2019-03-25
  • 请问,建立市场经济后,原计划经济哪里去?改革后,我们还在实行计划经济,为何没有提及? 2019-03-25
  • 构建年轻干部梯次培养链 2019-03-19
  • 孙实的专栏作者中国国家地理网 2019-03-15
  • 湖南师范大学举行研究阐释党的十九大精神国家社科基金重大专项学术研讨会 2019-03-15
  • [雷人]蠢货!土地处于不同的城市和地段,关联的资源不一样,价值也不一样。不然给咱俩同样面积的土地,咱的在北上广深,你的在边远山区,你干么? 2019-03-08
  • 国际社会持续热议上合青岛峰会:上合组织发展进入新阶段 彰显中国领导力 2019-03-08
  • 珍惜野生动物频现甘孜境内 生态环境质量不断提升 2019-03-06
  • "新经济形势下金融创新的变革与机遇"论坛 2019-03-06