• NumPy 数组索引 切片


    在这里插入图片描述

    NumPy 数组索引

    访问数组元素

    数组索引与访问数组元素相同。

    您可以通过引用数组元素的索引号来访问该元素。

    NumPy数组中的索引以0开头,这意味着第一个元素的索引为0,第二个元素的索引为1,依此类推。

    例1 从以下数组中获取第一个元素:

    import numpy as np
    
    arr = np.array([1, 2, 3, 4])
    
    print(arr[0])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    1
    
    • 1

    例2 从以下数组中获取第二个元素。

    import numpy as np
    
    arr = np.array([1, 2, 3, 4])
    
    print(arr[1])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    2
    
    • 1

    例3 从以下数组中获取第三个和第四个元素并添加它们。

    import numpy as np
    
    arr = np.array([1, 2, 3, 4])
    
    print(arr[2] + arr[3])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    7
    
    • 1

    访问 2-D 数组

    要从二维数组中访问元素,我们可以使用逗号分隔的整数来表示元素的维度和索引。

    将二维数组想象成包含行和列的表,其中行表示维度,索引表示列。

    例:访问第一行第二列上的元素:

    import numpy as np
    
    arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
    
    print('第一行第二列上的元素为: ', arr[0, 1])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    第一行第二列上的元素为:  2
    
    • 1

    例2: 访问第 2 行第 5 列中的元素:

    import numpy as np
    
    arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
    
    print('第 2 行第 5 列中的元素为: ', arr[1, 4])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    第 2 行第 5 列中的元素为:  10
    
    • 1

    访问 3-D 数组

    要从三维数组中访问元素,我们可以使用逗号分隔的整数来表示元素的维度和索引。

    例1 访问第一个数组的第二个数组的第三个元素:

    import numpy as np
    
    arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
    
    print(arr[0, 1, 2])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    6
    
    • 1

    示例说明

    第一个数字表示第一个维度,其中包含两个数组:
    [[1, 2, 3], [4, 5, 6]]
    和:
    [[7, 8, 9], [10, 11, 12]]
    由于我们选择了0 ,代表我们选择了数组:
    [[1, 2, 3], [4, 5, 6]]

    第二个数字表示第二个维度,它还包含两个数组:
    [1,2,3]
    和:
    [4,5,6]
    由于我们选择了1,代表我们选择了第二个数组:
    [4,5,6]

    第三个数字表示第三个维度,其中包含三个值:
    4
    5
    6
    由于我们选择了2 ,我们最终得到第三个值:
    6

    负索引

    使用负索引从末尾访问数组。

    例 打印第二个 dim 的最后一个元素:

    import numpy as np
    
    arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
    
    print('第二个 dim 的最后一个元素: ', arr[1, -1])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    第二个 dim 的最后一个元素:  10
    
    • 1

    NumPy 数组切片

    切片数组

    Python中的切片意味着将元素从一个给定索引带到另一个给定索引。

    我们传递切片而不是索引,如下所示:.[start:end]

    我们也可以定义步骤,如下所示:。[start:end:step]

    如果我们不设置start,则表示从0开始

    如果我们不设置 end,则表示数组长度

    如果我们不设置 step,则默认为1

    例:从以下数组中将元素从索引 1 切片到索引 5:

    import numpy as np
    
    arr = np.array([1, 2, 3, 4, 5, 6, 7])
    
    print(arr[1:5])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    [2 3 4 5]
    
    • 1

    注意: 结果包括 起始索引,但不包括 结束索引。

    例 : 将元素从索引 4 切片到数组的末尾:

    import numpy as np
    
    arr = np.array([1, 2, 3, 4, 5, 6, 7])
    
    print(arr[4:])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    [5 6 7]
    
    • 1

    例子:从开始到索引 4(不包括)对元素进行切片:

    import numpy as np
    
    arr = np.array([1, 2, 3, 4, 5, 6, 7])
    
    print(arr[:4])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    [1 2 3 4]
    
    • 1

    负切片

    使用减号运算符从末尾引用索引:

    例 : 从末尾的索引 3 切到从末尾的索引 1:

    import numpy as np
    
    arr = np.array([1, 2, 3, 4, 5, 6, 7])
    
    print(arr[-3:-1])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    [5 6]
    
    • 1

    step 步长

    使用step确定切片长度:

    例 : 返回从索引 1 到索引 5 的所有其他元素:

    import numpy as np
    
    arr = np.array([1, 2, 3, 4, 5, 6, 7])
    
    print(arr[1:5:2])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    [2 4]
    
    • 1

    例子 从整个数组中返回所有奇数元素:

    import numpy as np
    
    arr = np.array([1, 2, 3, 4, 5, 6, 7])
    
    print(arr[::2])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    [1 3 5 7]
    
    • 1

    2-D 数组 切片

    例 从第二个元素开始,将元素从索引 1 切片到索引 4(未包含):

    import numpy as np
    
    arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
    
    print(arr[1, 1:4])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    [7 8 9]
    
    • 1

    例 从这两个元素返回索引 2:

    import numpy as np
    
    arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
    
    print(arr[0:2, 2])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    [3 8]
    
    • 1

    例子:从两个元素,切片索引 1 到索引 4(未包括在内),这将返回一个 2-D 数组:

    import numpy as np
    
    arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
    
    print(arr[0:2, 1:4])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    [[2 3 4]
     [7 8 9]]
    
    • 1
    • 2
  • 相关阅读:
    git push 错误
    08.23递归 以及python算法(快排,冒泡,选择)
    APP自动化测试 ---- Appium介绍及运行原理
    L02 Laravel 教程 - Web 开发实战进阶 - 笔记
    电容笔和Apple pencil区别有哪些区别?苹果笔替代笔推荐
    棒球场上的礼仪·野球1号位
    【Linux修炼】开篇
    centos docker服务问题
    从输入URL到网页显示,期间发生了什么(详解)
    P4学习——Basic Tunneling
  • 原文地址:https://blog.csdn.net/a883774913/article/details/125605585