zoukankan      html  css  js  c++  java
  • 《Python数据分析》笔记1 ——Numpy

    Numpy数组

    1.Numpy数组对象

    Numpy中的多维数组称为ndarray,他有两个组成部分。

    1.数据本身

    2.描述数据的元数据

    2.Numpy的数值类型

    bool: 布尔型

    inti:其长度取决于平台的整数(通常为int32或int64)

    int8:字节类型

    int16:整型

    int32:整型

    int64:整型

    uint8:无符号整型

    uint16:无符号整型

    uint32:无符号整型

    uint64:无符号整型

    float16:半精度浮点型

    float32:单精度浮点型

    float64或者float:双精度浮点型

    complex64:复数类型

    complex128或者complex:复数类型

    谨记:不要把复数类型转换为整型,这会报错。,同样也不允许把复数转化为浮点数。

    3.一维数组的切片与索引

    一维数组Numpy数组的切片操作与Python列表的切片一样。

    In:a=np.arange(9)
    In:a[3:7]
    Out:array([3,4,5,6])
    In:a[:7:2]
    Out:array([0,2,4,6])

    4.处理数组形状

    可以利用以下函数处理数组的形状

    1.拆解:可以用ravel()函数将多维数组变成一维数组,a.ravel()

    2.拉直:flatten()函数的名字取得很贴切,其功能与ravel()相同,可是,flatten()返回的是真实的数组,需要分配新的内存空间;而ravel()函数返回的只是数组的视图

    3.用元组指定数组形状:除了reshape()函数外,还可以用元组来轻松定义数组的形状。

    4.转置:行变列,列变行。a.transpose()

    5.调整大小:函数resize()作用类似于reshape()但是会改变所作用的数组

    堆叠数组

    1.水平叠加

    image

    用concatenate()函数也能达到同样的效果

    image

    2.垂直叠加

    image

    当参数axis置为0时,concatenate()函数也会得到同样效果

    image

    3.深度叠加

    这种方法是沿着第三个坐标轴(纵向)的方向来叠加一摞数组。

    image

    4.列式堆叠

    column_stack()函数以列方式对一维数组进行堆叠

    image

    5.行式堆叠

    image

    拆分Numpy数组

    相关函数hsplit()、vsplit()、dsplit()和split()。我们既可以把数组分成相同形状的数组,也可以从规定的位置开始切取数组。

    1.横向拆分

    image

    相当于调用参数axis=1的split()函数:

    image

    2.纵向拆分

    image

    当参数axis=0,split()函数也会沿着纵轴方向分解数组

    image

    3.深度拆分

    前提是必须要有深度。

    image

    image

    Numpy的数组属性

    ndim:存储的是维度的数量

    size:用来保存元素的数量

    itemsize:可以返回数组中各个元素所占用的字节数

    nbytes:整个数组所需的字节数量

    T:与transpose()函数相同,转置

    real:该属性返回实部

    imag:该属性返回虚部

    flat属性:可以返回一个numpy.flatiter对象,这是获得flatiter对象的唯一方法,但我们无法访问flatiter的构造函数。可以使用flat的迭代器来遍历数组,就像遍历“胖”数组那样

    image

    数组的转换

    1.Numpy数组转换成Python列表,使用tolist()函数

    2.astype()函数可以把数组元素转换成指定类型

    Numpy数组的广播

    当操作对象的形状不一样时,Numpy会尽力进行处理

    例如,假设一个数组要跟一个标量相乘,这时标量需要根据数组的形状进行扩展,然后才可以执行乘法运算。这个扩展的过程叫做广播。

    image

  • 相关阅读:
    uiwebview的基本使用
    当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
    开车误闯红灯的补救方法 (以及由此引发的一些思考)
    Android源码剖析之Framework层基础版(窗口、linux、token、Binder)
    Android项目框架之图片加载框架的选择
    通过runtime替换系统类实现的代码(从github开源库fdstackview中摘录)
    awakeFromNib相关知识详解
    推送服务推荐
    由微博图床挂掉之后想到的
    Mac下如何配置环境变量
  • 原文地址:https://www.cnblogs.com/yifdu25/p/8387754.html
Copyright © 2011-2022 走看看