Python数据分析--Numpy

NumPy基础
基于ipython
这里我用的是python2解释器

一.数组对象基础*

在root用户下载安装 jupyter
在命令行执行

   jupyter    notebook   --allow-root

会在默认浏览器打开一个窗口
如图
在这里插入图片描述然后点击New 选项选择python解释器
选择完成后就会出现命令行,可以输入命令了

在这里插入图片描述这里简单介绍几个基本操作

1.初识数组对象

  import    numpy  as  np
  np.__version__
 
  这是查看当前NewPy版本的方法  (附,执行时点击Run或者应用快捷键  Shift+Enter )

首先我们创建一个数组

   data=np.array([1,2,3])
   data
   输出为 array([1,2,3])
    
   type(data)
   输出为 numpy.ndarray
   这里的ndarray是NumPy的核心功能,即多维数组

   当然每一个数组都有他的属性和方法
   查看:
          dir(data)
          会输入一堆就不多解释了

当需要查看数组类型时

   输入   data.dtype
   输出   dtype('int64')

表明数组data是由整形数字构成的,这些数字也成为数组的元素

2.数组的属性
我们先看数组元素类型的转化

 new=data.astype(np.float)
 new
 输出   array([1.,2.,3.])
 这是将整形元素转化为浮点型元素

 
 new.dtype
 输出  dtype('float 64')
 而原来的data类型并没有改变

这里我们知道了dtype是表示数组元素的类型
那么还有一些其他的属性如下表

    属性                                                                                      解释
    shape                                                        返回由整数组成的元组,元组中的每个整数依次对应每个轴的元素个数
    size                                                            返回一个整数,代表数组中元素的个数
    ndim                                                          返回一个整数,代表数组的轴的个数,即维度
    nbytes                                                       返回一个整数,代表用于保存数据的字节数

例如

 a=np.array( [1,2] )
 a.shape                       返回  (3,)
 c=np.array( [1.0,2.0,3.0,4.0] )
 c.shape                       返回  (4,)
 a.ndim                        返回  1
 a.size                        返回 3

牢记:组成数组的元素必须是同一种类型,这跟python里的list明显不同
创建数组的基本方法: np.array( )

当然我们也可以这样创建元素是浮点型的数组,在元素少的时候较为方便

  b=np.array( [1,2,3,4],  dtype=float ( )
  b        b.dtype
  返回 是   array( [1.,2.,3.,4.] )    和    dtype( 'float64')

附: 嵌套列表要求每个嵌套列表长度都相同

 d=np.array( [ [1,2,3], [4,5,6] ,[7,8,9] ] )
 d
 返回     array( [ [1,2,3] ,
                   [4,5,6],
                   [7,8,9] ] )

如果元素长度不相同,那么NumPy会自动推断元素类型 ,如

  e=np.array( [ [1,2,3] ,[4,5], [7,8,9,10 ] ] )
  e
  返回  array( [list( [1,2,3] ), list( [4,5] ), list ( [ 7,8,9,10 ] ) ],dtype=object )

注意此时返回的各种属性

  e.shape          ------(3,4)               嵌套了三个小列表,每个小列表有4个元素    也可以理解为在0轴上有三个元素,在1轴上有4个元素
  e.size           ------9                   这里的size 即python里的len ( )
  e.ndim           ------2
  b.shape          ------(4,)   

这里为了方便理解shape属性,我举了几个例子如下

   db= np.array ( [ 1,2,3,4,5,6,7,8 ],ndim=2  )
   db                          返回 array( [ [1,2,3,4,5,6,7,8 ] ] )
   因为告知了数组是二维的,所以0轴存在但是空,1轴上是1到8
   db.shape                    返回 (1,8)  

为方便记忆,我们可以这样理解,一维数组就是一个中括号,二维数组两个,如果告知是几维数组那就是几,这里的括号指嵌套的外部括号。
而shape属性的第一个数字是轴数,一个中括号则表示在0轴上,省略不写,两个则表示在1轴上,括号指最里面的小括号数。

复数类数组

          a=array( [1,2,3] )
          de=np.array( [a,dtype=complex ] )
          de           返回结果是
                  array( [1.+0.j ,  2.+0.j  ,  3.+0.j  , 4.+0.j ] )
          de.dtype( )
          返回    dtype(' complex128 ')

3.用函数创建数组

   np.zeros( (2,10 ) )
   np.ones ( (3,5 ) )
   结果如图

在这里插入图片描述在这里插入图片描述这是否有相同之处呢,这个参数其实就是shape的参数

事实上,NumPy也有内置函数如下

 函数                                                                                        解释
 asarray                                      输入参数为列表、元组,或者由他们组成的嵌套对象或数组,返回一个数组。如果参数是数组,则返回该数组本身
 arange                                       根据开始值、结束值和步长创建一个数组
 ones、ones_like                              创建元素值为1的数组
 zeros、zeros_like                            创建元素值为0的数组
 empty、empty_like                            创建元素为空的数组
 eye  、   identity                           创建对角线元素为1,其余元素是0的二维数组
 diag                                         创建对角线元素是指定元素,其余元素是0的二维数组
 linspace                                     根据开始值,结束值和元素数量创建元素是等差数列的数组
 logspace                                     根据开始值,结束值和元素数量和对数底创建元素是等比数列的数组

解释

np.ones ( ( 6, ) )      -array( [1.,1.,1.,1.,1.,1.] )
np.ones( 6)             -array( [1.,1.,1.,1.,1.,1.] )

当然这里输出也可以作为输入的参数
在这里插入图片描述
使用np.ones_like( )有同样的效果
在这里插入图片描述
此处也能够指定元素类型,在b后面加dtype=np.int
输出元素类型为整形
这里我们定义输出的数组是矢量,那么就可以和标量做算术运算
比如给上面的数组乘以6,结果他内部的元素就都变为6了

我在这列举每个内置函数的使用方法
在这里插入图片描述
注意:diag函数还有取对角线的作用

在这里插入图片描述
这里请多留意diag( )函数的使用方法,有他的另一个用法

最后元素是等差和等比的数组,等差数列符合Python的左闭右开规则,但是等比数列则是左右都开。
在这里插入图片描述

4.用from系列函数创建数组

在这里插入图片描述
lambda函数的用法相信大家都清楚,这里就不多说了
这里说一点,(9,9)是创建数组的shape值,第一个9代表一共9个轴,第二个9代表每个轴有9个元素
第一个图其实就是九九乘法表
这里的 i 和 j 都是从0开始的

希望这些基本用法对大家有所帮助

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值