• numpy学习总结(重点讲解索引方式)


    numpy思维导图

    ndarray对象是什么

    • NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
    • ndarray 对象是用于存放同类型元素的多维数组。
    • ndarray 中的每个元素在内存中都有相同存储大小的区域。

    ndarray 内部由以下内容组成:

    • 一个指向数据(内存或内存映射文件中的一块数据)的指针。

    • 数据类型或 dtype,描述在数组中的固定大小值的格子。

    • 一个表示数组形状(shape)的元组,表示各维度大小的元组。

    • 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。

    创建数组的多种方式

    • 创建数组(empty、zeros、ones、full、eye)
    • 从已有的数组创建数组(asarray、frombuffer、fromiter)
    • 从数值范围创建数组(arange、linespace、logspace、random)

    特性

    • 切片、索引、高级索引

        ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。

        切片是从原数组切出一个新的数组;索引是可以通过下标访问数组。

        高级索引是:整数数组索引、布尔索引、花式索引。

          整数数组索引:见名知意,通过在x[]放入整数数组来表达要索引元素的下标,来检索原数组。

          例如:

    # 整数数组索引
    x = np.array([[1, 2], [3, 4], [5, 6]])
    print(x, '
    ')
    t = np.array([[0, 1, 2], [0, 1, 0]])  # 这里,我要获取原数组中(0,0)、(1,1)、(2,0)位置的元素
    print(t, '
    ')
    y = x[[0, 1, 2], [0, 1, 0]]
    print(y, '
    ')
    # 输出
    [[1 2] [3 4] [5 6]] [[0 1 2] [0 1 0]] [1 4 5]

          布尔索引:通过布尔运算(如:比较运算符)来获取符合指定条件的元素的数组。

    # # 布尔索引
    x = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
    print(x)
    print(x[x > 5], '
    ')
    
    # # 使用了 ~(取补运算符)来过滤 NaN。
    a = np.array([np.nan, 1, 2, np.nan, 3, 4, 5])
    print(a)
    print(a[~np.isnan(a)], '
    ')
    
    # # 如何从数组中过滤掉非复数元素
    a = np.array([1, 2+6j, 5, 3.5+5j])
    print(a)
    print('非复数 :', a[~np.iscomplex(a)])
    print('复数 :', a[np.iscomplex(a)], '
    ')
    # 输出
    
    [[ 0  1  2]
     [ 3  4  5]
     [ 6  7  8]
     [ 9 10 11]]
    [ 6  7  8  9 10 11] 
    
    [nan  1.  2. nan  3.  4.  5.]
    [1. 2. 3. 4. 5.] 
    
    [1. +0.j 2. +6.j 5. +0.j 3.5+5.j]
    非复数 : [1.+0.j 5.+0.j]
    复数 : [2. +6.j 3.5+5.j] 

          花式索引:

    • 广播

    丰富的函数

  • 相关阅读:
    [SAP Rolling Out] Unit TEST/INTEGRATION TEST/UAT TEST/PARREL TESTING
    针式PKM与众不同的地方
    针式PKM拖动收集功能兼容所有的浏览器
    周九常:个人知识管理的三个重点领域
    关闭word文件老是说normal.dot被另外一人使用
    针式PKM初级应用:修改知识点的颜色评介
    寻找识货的人
    针式PKM中级应用如何将知识管理应用到新项目研发中
    针式PKM中级应用在10秒以内找到本月收集的任意文章
    针式PKM中级应用:知识点之间如何链接
  • 原文地址:https://www.cnblogs.com/daemonFlY/p/10576802.html
Copyright © 2020-2023  润新知