加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

Numpy 介绍和基础使用详解

发布时间:2019-11-19 14:14:04 所属栏目:资源 来源:博客园
导读:NUMPY INTRODUCTION NUMPY 提供了一个在 Python 中做科学计算的基础库,重在数值计算,主要用于处理多维数组,用于储存和处理大型矩阵,本身是由C语言开发,比python自身的列表结构要高效的多。 高性能科学计算和数据分析的基础包,总结: NUMPY是一个Pyth
  NUMPY INTRODUCTION  NUMPY 提供了一个在Python中做科学计算的基础库,重在数值计算,主要用于处理多维数组,用于储存和处理大型矩阵,本身是由C语言开发,比python自身的列表结构要高效的多。  高性能科学计算和数据分析的基础包,总结:  NUMPY是一个Python科学计算基础库,提供了多维向量  NUMPY提供了用于数组快速操作的方法,数学,逻辑,排序,选择,线性代数,统计等  NUMPY采用预编译的C代码完成,效率更高  安装:    使用:   行业惯例将np作为numpy,将pd作为pandas。下文所有np均指的是numpy  认识轴:  轴【axis】:  既然是多维数组,先理清一下轴,类似于我们学习的X、Y、Z  二维数组的轴:Numpy 介绍和基础使用详解  图一  三维数组的轴:Numpy 介绍和基础使用详解  图二  使用NUMPY创建数组:  例:创建一个图一的数组 Numpy 介绍和基础使用详解  方法1:    np.array([])  [[1 2 3]  [4 5 6]]  方法2:    np.arange()  #1~6 步数为1  [1,2,3,4,5,6]  #将一维数组转变为二维  [[1 2 3]  [4 5 6]]  常用属性和方法  形状  ndarray.shape  重新改变数组形状  ndarray.reshape(x_dim, y_dim, z_dim,…)  数组的维度  ndarray.ndim  itemsize输出array元素的字节数  numpy.itemsize  数组的形状:  nparray.shape:  #查看数组的形状维度  (6,)  nparray.reshape:  #改变数组的维度,规则1*6==2*3  (2, 3)  获取数组的维度,可使用len(nparray.shape),即元祖的维度,即numpy.itemsize  将多维数组转换为一维数组方式:  自己动手:  实际又是自己在造轮子,可使用np自带方法:  nparray= nparray.flatten()  [[1 2 3]  [4 5 6]]  [1 2 3 4 5 6]  数组的计算:  情况一:数组和数值直接运算  [[1 2 3]  [4 5 6]]  数组可以直接与数字进行四则运算(+、-、*、/)  即数组里的每一个值分别四则运算  [[3 4 5]  [6 7 8]]  [[inf inf inf]  [inf inf inf]]  在numpy中,/0并不会报错,  inf(infimum)表示无穷,  nan(not a number)代表未定义或不可表示的值,  情况二:数组与数组计算  这里要注意了,数组和数组的计算和矩阵是不同的  矩阵的乘积:Numpy 介绍和基础使用详解  数组的乘积:Numpy 介绍和基础使用详解  相同的多维数组或直接与单维度轴相同,可以直接四则运算:  方式:广播(broadcast)Numpy 介绍和基础使用详解  a:  [[1 2 3]  [4 5 6]]  [[ 1  4  9]  [16 25 36]]  b:  [1 2 3]  [[ 1  4  9]  [ 4 10 18]]  c:  [[1]  [2]]  [[ 1  2  3]  [ 8 10 12]]  数组的操作:  1、转置操作  [[1 2 3]  [4 5 6]]  a.T  [[1 4]  [2 5]  [3 6]]  a.transpose()  [[1 4]  [2 5]  [3 6]]  a.swapaxes(1,0)    #交换0轴和1轴  [[1 4]  [2 5]  [3 6]]  2、切片  [[1 2 3]  [4 5 6]  [7 8 9]]  2.1取行  2.1.1、取第x行  print(a[x])  [4 5 6]  2.1.2、取多行  print(a[[x,x]])  [[1 2 3]  [7 8 9]]  2.1.3、取连续多行  print(a[x:y:z]) #连续取从x行到y行,不包括y,间隔为z  [[1 2 3]  [4 5 6]  [7 8 9]]  [[1 2 3]  [7 8 9]]  2.2取列  和取行类似  a[:,x]#取x列  a[:,x:y]#取下标为x到下标为y-1的列  a[:,x:y:z]#取下标为x到下标为y-1,间隔为z的列  a[:,[x,y]] #取下标为x,y的两列  2.3取某一点  a[1,1]=a[1][1]  5  2.4取某一部分  [[5 6]  [8 9]]  布尔索引、三元运算、裁剪  [[1 2 3]  [4 5 6]  [7 8 9]]  布尔索引:  [[False False False]  [False False  True]  [ True  True  True]]  print(a[a>5])  [6 7 8 9]  [[1 2 3]  [4 5 5]  [5 5 5]]  三元运算:  [[1 1 1]  [1 9 9]  [9 9 9]]  裁剪  [[3 3 3]  [4 5 6]  [7 7 7]]  常用的统计函数  求和:nparray.sum(axis=None)  均值:nparray.mean(axis=None) 受离群点的影响较大  中值:np.median(nparray,axis=None)  最大值:nparray.max(axis=None)  最小值:nparray.min(axis=None)  极值:np.ptp(nparray,axis=None) 即最大值和最小值只差  标准差:nparray.std(axis=None)  其他方法  获取最大值最小值的位置  np.argmax(nparray,axis=0)  np.argmin(nparray,axis=1)  创建一个全0的数组: np.zeros((3,3))  [[0. 0. 0.]  [0. 0. 0.]  [0. 0. 0.]]  创建一个全1的数组: np.ones((3,3))  [[1. 1. 1.]  [1. 1. 1.]  [1. 1. 1.]]  创建一个对角线为1的正方形数组(方阵):np.eye(3)  [[1. 0. 0.]  [0. 1. 0.]  [0. 0. 1.]]  NUMPY中的复制操作  a=b 完全不复制,a和b相互影响  a = b[:],视图的操作,一种切片,会创建新的对象a,但是a的数据完全由b保管,他们两个的数据变化是一致的,  a = b.copy(),复制,a和b互不影响  等等用法:  numpy.sort()  numpy.amin()  numpy.amax()  numpy.mean()  numpy.average()  numpy.std()  # sqrt(mean((x - x.mean())**2))  numpy.var()  # mean((x - x.mean())** 2)  numpy.sin() cos() tan() pi arcsin(), arccos() arctan() degrees()

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读