当前位置:   article > 正文

python数据分析概述_python数值分析的发展综述

python数值分析的发展综述
  1. #coding:utf-8
  2. import scrapy,math,string
  3. import lxml,scipy
  4. import re,json
  5. import pandas as pd
  6. import numpy as np
  7. # class Test(object):
  8. # def start(self,num):
  9. # print(num)
  10. # numbers = np.array(num)
  11. # target = input('请输入以上数组任意两个元素的和')
  12. # for i in range(0,len(num)):
  13. # for j in range(i+1,len(num)):
  14. # if int(num[i])+int(num[j])==int(target):
  15. # print('(index1=%s,index2=%s)'%(i+1,j+1))
  16. # test=Test()
  17. # n=0
  18. # a=[]
  19. # while(n!='#'):
  20. # n=input('输入#结束:')
  21. #
  22. # if n.isdigit():
  23. # a.append(n)
  24. # print(a)
  25. # else:
  26. # print('请重新输入:')
  27. #
  28. # test.start(a)
  29. # python 数据分析 -----1
  30. #
  31. # Numpy---提供常用的数值数组、矩阵等函数
  32. # 优点:是基于向量化的运算
  33. # 进行数值运算时Numpy数组比list效率高
  34. # 基本功能:
  35. # 快速高效的多维数组对象ndarray
  36. # 用于对数组执行元素级计算以及直接对数组执行数学运算的函数
  37. # 用于读写硬盘上基于数组的数据集的工具
  38. # 用于将c\c++\Fortran代码集成到python的工具
  39. # 除了为python提供快速的数组处理能力,Numpy在数据分析方面还有另外一个主要作用,即作为在算法之间传递数据的容器
  40. # 效率对比
  41. # 三种数据结构:list/array/numpy.array
  42. # 三种方法求和:for/sum/numpy.sum
  43. list=[1,2,3,4,5]
  44. a=np.array(list)
  45. #print(type(a))
  46. #若使用列表求其平方,则需要for循环
  47. #不需要编写循环即可对数据执行批量运算
  48. # 大小相等的数组之间的任何算术运算都会将运算应用到元素级
  49. # 数组与标量的算术运算也会将那个标量值传播到各个元素
  50. # print(1/a)
  51. #a2=a**2
  52. #print(a2)
  53. #Numpy的ndarray基本的索引和切片
  54. #切片
  55. arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
  56. print(type(arr[0]))#一维数组
  57. print(arr[1,0])#相当于取下标元素
  58. print(arr[:2,:2])#取前两行前两列元素
  59. arr1 = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
  60. print (arr1[0]) # 结果是个2维数组
  61. print(arr1[1,0,1])
  62. old_values=arr1[0].copy()
  63. print(old_values)
  64. #布尔型索引
  65. name_arr=np.array(['A','B','C','D','E'])
  66. rand_arr=np.random.randn(5,4)#生成一个7*4的随机数组
  67. print(rand_arr)
  68. print(name_arr=='B')
  69. print(rand_arr[name_arr=='B'])#利用布尔数组选择行(索引 2 为True,故打印第二行)
  70. print(rand_arr[name_arr=='B',:2])#增加限制打印列的范围
  71. print(rand_arr[(name_arr=='B')|(name_arr=='E')])#逻辑运算混合结果
  72. rand_arr[name_arr=='A']=5
  73. print(rand_arr)
  74. #花式索引(Fancy indexing)是一个Numpy术语,它指的是利用整数数组进行索引
  75. narr=np.empty((8,4,2))
  76. for i in range(8):
  77. narr[i]=i
  78. print(narr)
  79. index=[[0,-3,4],[1,2,3],[1,1,0]]
  80. print(narr[index])
  81. num=np.arange(32).reshape((8,4))#将0-31的整数变形为8x4数组
  82. print(num)
  83. print(num[[1,5,7,6]][:,[0,3,1,2]])#与下行等价
  84. print(num[np.ix_([1,5,7,6],[0,3,1,2])])#第1,5,7,6行的第0312列
  85. #Numpy的ndarray数组转置和轴对换
  86. # redot=np.dot(num.T,num)矩阵点积
  87. tri=np.arange(32).reshape((4,2,4))
  88. print(tri)
  89. tran=tri.transpose((1,0,2))
  90. print(tran)
  91. # tran=num.transpose((1,0))
  92. # print(tran)
  93. # swap=num.swapaxes(0,1)#直接交换第1和第2个坐标
  94. # print(swap)
  95. # 详细解释:
  96. # arr数组的内容为
  97. # - a[0][0] = [0, 1, 2, 3]
  98. # - a[0][1] = [4, 5, 6, 7]
  99. # - a[1][0] = [8, 9, 10, 11]
  100. # - a[1][1] = [12, 13, 14, 15]
  101. # transpose的参数为坐标,正常顺序为(0, 1, 2, ... , n - 1),
  102. # 现在传入的为(1, 0, 2)代表a[x][y][z] = a[y][x][z],第0个和第1个坐标互换。
  103. # - a'[0][0] = a[0][0] = [0, 1, 2, 3]
  104. # - a'[0][1] = a[1][0] = [8, 9, 10, 11]
  105. # - a'[1][0] = a[0][1] = [4, 5, 6, 7]
  106. # - a'[1][1] = a[1][1] = [12, 13, 14, 15]
  107. #Numpy的ndarray快速的元素级数组函数
  108. '''
  109. rint 将各元素值四舍五入到最接近的整数,保留dtype
  110. modf 将数组的小数部分与整数部分以两个独立数组的形式返还
  111. isnan 返回一个表示“哪些值是NaN(这不是一个数字)”的布尔类型数组
  112. isfinite,isinf分别返回一个表示“哪些元素是有限的(非inf,非NaN)”或“哪些元素是无穷的”的布尔型数组
  113. cos,cosh,sin,sinh,tan,tanh普通型或双曲线型三角函数
  114. logical_not 计算各元素not x的真值,相当于-arr【数组取反】
  115. '''
  116. '''
  117. #Scipy 是一种使用Numpy来做高等数学、信号处理、优化、统计的扩展包http://docs.scipy.org/doc/【具体使用可查看官方文档】
  118. # Linear Algebra(scipy.linalg)
  119. # Statistics(scipy.stats)
  120. # spatial data structure and algorithms(scipy.spatial)
  121. from scipy import linalg
  122. A=np.array([[1,2],[3,4]])
  123. print(A)
  124. #求行列式的值
  125. result=linalg.det(A)
  126. print(result)
  127. '''
  128. '''
  129. #Pandas 是一种构建于Numpy的高级数据结构和精巧工具,快速简单的处理数据
  130. # 支持自动或明确的数据对齐的带有标签轴的数据结构。
  131. # 整合的时间序列功能
  132. # 以相同的数据结构来处理时间序列和非时间序列
  133. # 支持传递元数据(坐标轴标签)的算数运算和缩减。
  134. # 灵活处理丢失数据
  135. # 在常用的基于数据的数据库(例如SQL)中的合并和其他关系操作
  136. # 数据结构:Series和DataFrame
  137. s=pd.Series([1,3,5,np.nan,8])
  138. #np.nan 生成一个空的字符
  139. #print(s)
  140. dates=pd.date_range('2018.7.20',periods=8)
  141. #print(dates)
  142. #DataFrame(data,index,columns)生成一个类似于数据库表的数据结构(矩阵)
  143. df=pd.DataFrame(np.random.randn(8,5),index=dates,columns=list)
  144. print(df)
  145. #df.head(n)选取前n行
  146. print(df.head(1))
  147. # df.tail(n)选取后n行
  148. print(df.tail(1))
  149. # df.describe()查看概述 count,mean,std,min,25%,50%,75%,max(计数,均值,标准差,五数概括)
  150. print(df.describe())
  151. # df.sort_values(by=1)排序
  152. print(df.sort_values(by=1))
  153. # df.T转置
  154. print(df.T)
  155. '''
  156. #matplotlib Python绘图库
  157. #nltk自然语言处理工具包(Natural Language Toolkit)
  158. # 安装:pip install -U nltk
  159. # 引入:import nltk
  160. # 下载预料库:nltk.download() 大概占用存储空间2G
  161. # 应用:文本提取、词汇切分、词频分析、词袋模型、情感分析
  162. #igraph 图计算和社交网络分析http://igraph.org/python/
  163. # 安装:pip insatll -U python-igraph
  164. # conda install -c marufr python-igraph=<特定版本>
  165. # from igraph import *
  166. #Scikit-learn 是建立在Scipy之上的一个用于机器学习的Python模块(分类,聚类,回归,降维等算法)
  167. #安装:pip install -U scikit-learn
  168. # conda install scikit-learn

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/181395
推荐阅读
相关标签
  

闽ICP备14008679号