zoukankan      html  css  js  c++  java
  • 认识Numpy Ndarray对象

    Numpy介绍

      NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

      NumPy为什么能够受到各个数据科学从业人员的青睐与追捧,其实很大程度上是因为NumPy在向量计算方面做了很多优化,接口也非常友好。而这些其实都是在围绕着NumPy的一个核心数据结构Ndarray

    Ndarray对象

      Ndarray的全称是(N-Dimension Arrary),表明了一个ndarray对象就是一个N维数组。但要注意的是,ndarray是同质的。同质的意思就是说N维数组里的所有元素必须是属于同一种数据类型的。

    Ndarray对象实例化

      实例化ndarray对象的函数有很多种,但最为常用的函数是arrayzerosones以及empty

    首先导入numpy:

    import numpy as np

    1.使用array函数实例化Ndarray对象

    使用NumPy中的array函数将list中的值作为初始值,来实例化一个ndarray对象。

    a = np.array([[2, 3, 4],[5, 6, 7]])
    print(a)

    结果为:

    2.使用zeros,ones,empty函数实例化Ndarray对象

    顾名思义,使用这些函数可以实例化一个全是0、1或者是为空的ndarray对象

    import numpy as np
    
    a = np.zeros((3, 4))
    b = np.ones((3, 4))
    c = np.empty((3, 4))
    print(a)
    print(b)
    print(c)

    结果为:

    Ndarray的操作

      形状操作

      使用reshape函数改变ndarray对象的形状

    import numpy as np
    a = np.zeros((3, 4))
    print(a)
    # 使用函数reshape将3行4列改成4行3列
    a = a.reshape((4, 3))
    print(a)

    结果为:

      算术操作

    对ndarray进行加减乘除等操作

    import numpy as np
    a = np.array([0, 1, 2, 3])
    print(a)
    # a中的所有元素都加2
    b = a + 2
    print(b)
    # a中的所有元素都减2
    c = a - 2
    print(c)
    # a中的所有元素都乘以2
    d = a * 2
    print(d)
    # a中的所有元素都除以2
    e = a / 2
    print(e)

    结果为:

    切片

    ndarray元素的索引从0开始。ndarray的切片方式与pythonlist的遍历方式也极为相似,掌握了诀窍之后就很简单。

    举个例子,假设想要将下图中紫色部分切片出来,就需要确定行的范围和列的范围。由于紫色部分行的范围是02,所以切片时行的索引范围是0:3(索引范围是左闭右开);又由于紫色部分列的范围也是02,所以切片时列的索引范围也是0:3(索引范围是左闭右开)。最后把行和列的索引范围整合起来就是[0:3, 0:3](,左边是行的索引范围)。当然有时为了方便,0可以省略,也就是[:3, :3]

     代码如下:

    import numpy as np
    
    a = np.array([[1,10,11,20,21],[2,9,12,19,22],[3,8,13,18,23],[4,7,14,17,24],[5,6,15,16,25]])
    print(a)
    print(a[:3, :3])

    结果为:

  • 相关阅读:
    吴恩达机器学习视频笔记——7
    吴恩达机器学习视频笔记——6
    吴恩达机器学习视频笔记——5
    吴恩达机器学习视频笔记——4
    Python入门
    HtmlAgilityPack组件
    AutoMapper扩展
    SqlServer自动化分区
    使用Topshelf快速搭建Windows服务
    elasticsearch-查询
  • 原文地址:https://www.cnblogs.com/Y-xp/p/12390343.html
Copyright © 2011-2022 走看看