您现在的位置是:门户> 编程语言> Python

python numpy数组的索引和切片的操作方法
2020-11-23 86人围观 0条评论
简介NumPy 是一个 Python 包。 它代表 “Numeric Python”。它是一个由多维数组对象和用于处理数组的例程集合组成的库。这篇文章主要介绍了python numpy 数组的索引和切片,需要的朋友可以参考下

    NumPy - 简介

    NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。

    Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包。 这个开源项目有很多贡献者。

    NumPy 操作

    使用NumPy,开发人员可以执行以下操作:

    •数组的算数和逻辑运算。

    •傅立叶变换和用于图形操作的例程。

    •与线性代数有关的操作。 NumPy 拥有线性代数和随机数生成的内置函数。

    numpy库多维数组的类型和列表的类型非常类似,同样有索引和切片功能:

    索引:获取数组中特定位置元素的过程

    切片:获取数组元素子集的过程

    1.一维数组

    # 准备一个数组
    arr1=np.array(np.arange(9))
    arr1

    array([0, 1, 2, 3, 4, 5, 6, 7, 8])

    # 索引
    arr[-1] #8
    arr1[arr1.size-2] #7
    arr1[arr1.size-9] #0 
    # 切片 :[start:end:step]
    arr1[1:4] #左开右闭的区间
    arr1[1:5:2] #array([1,3])
    arr1[::-1] # 反向取所有,-1变成了步长

    2.二维数组

    # 准备一个二维数组
    arr2=np.array([
     np.arange(1,4),
     np.arange(5,8)
    ])
    
    arr2
    
    array([[1, 2, 3],
     [5, 6, 7]])
    
    # 索引
    arr2[0][2] # 3
    arr2[0,2] # 3
    # 切片
    arr2[0,] # array([1,2,3]) 
    arr2[0,::] # 同上
    arr2[0,0:3] #array([1,2]) 
    

    3.多维数组

    arr4=np.arange(1,25).reshape(2,3,4)
    arr4
    
    array([[[ 1, 2, 3, 4],
     [ 5, 6, 7, 8],
     [ 9, 10, 11, 12]],
     [[13, 14, 15, 16],
     [17, 18, 19, 20],
     [21, 22, 23, 24]]])
    
    arr4[1][2][2] # 23
    arr4[1,1,1] #18
    arr3[1,1,] # array([17,18,19,20])
    arr4[1,1,::] # 同上
    arr4[1,1,::-1] # array([20, 19, 18, 17])
    arr4[0,1:3] 
    #array([[ 5, 6, 7, 8],
      #[ 9, 10, 11, 12]])
    arr4[:1,1] #array([ 6, 18])
    b[1,:,2] #array([15, 19, 23])
    b[1,...] 
    #array([[13, 14, 15, 16],
     # [17, 18, 19, 20],
     # [21, 22, 23, 24]])
    b[0,::-1,-1] #array([12, 8, 4])
    b[:,:,-1][::-1][:,-1] #array([24, 12])

    总结

    以上所述是小编给大家介绍的python numpy数组的索引和切片的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

分享:

文章评论

    • wxpython 学习笔记 第一天
    • python文本数据处理学习笔记详解