• numpy的索引-【老鱼学numpy】


    简单的索引值

    import numpy as np
    a = np.arange(3, 15).reshape(3, 4)
    print("a=")
    print(a)
    
    print("第2行的数据:", a[2])
    print("第2行第3列的数据:", a[2][3])
    
    

    输出为:

    a=
    [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    第2行的数据: [11 12 13 14]
    第2行第3列的数据: 14
    

    对于获取第2行第3列的数据,我们还可以用如下的方式来获取:

    print("第2行第3列的数据:", a[2, 3])
    

    数据切片

    用冒号索引可以对数据进行切片。

    import numpy as np
    a = np.arange(3, 15).reshape(3, 4)
    print("a=")
    print(a)
    
    print("第2行所有数:", a[2, :])
    

    输出为:

    a=
    [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    第2行所有数: [11 12 13 14]
    

    上面用冒号来对数据选择进行了占位。

    如果我们想要获得第1列的所有数:

    import numpy as np
    a = np.arange(3, 15).reshape(3, 4)
    print("a=")
    print(a)
    
    print("第1列所有数:", a[:, 1])
    

    输出为第1列的所有数:

    a=
    [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    第1列所有数: [ 4  8 12]
    

    获取第1行从第2列到第4列的值:

    import numpy as np
    a = np.arange(3, 15).reshape(3, 4)
    print("a=")
    print(a)
    
    print("第1行从第2列到第4列的值:", a[1, 2:4])
    

    输出为:

    a=
    [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    第1行从第1列到第2列的值: [ 9 10]
    

    把数据变平

    把数据变平的意思是:如果是多维数组,则把数组中的每个元素平铺开来,变成一维数据,这样便于用索引值进行访问。
    例如:

    import numpy as np
    a = np.arange(3, 15).reshape(3, 4)
    print("a=")
    print(a)
    print("flatten=", a.flatten())
    

    输出:

    a=
    [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    flatten= [ 3  4  5  6  7  8  9 10 11 12 13 14]
    

    也可以用a.flat返回一个迭代器来变量其中的元素:

    import numpy as np
    a = np.arange(3, 15).reshape(3, 4)
    print("a=")
    print(a)
    
    for v in a.flat:
        print(v, end=',')
    

    输出为:

    a=
    [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    3,4,5,6,7,8,9,10,11,12,13,14,
    
  • 相关阅读:
    H5纯前端获取视频第一帧、大小、尺寸、类型等
    HTML5 拖放(Drag 和 Drop)
    HTML5 MathML:在文档中使用 MathML 元素,对应的标签是 <math>...</math>
    HTML5 内联 SVG:什么是SVG?SVG优势
    docker-machine安装教程
    Manjaro系统和软件安装记录
    geektime专栏《Java并发编程实战》笔记【待完成】
    kubernetes之三 使用kubectl在k8s上部署应用
    给虚拟机CentOS7扩容(lvm方式)
    分析SQL的执行过程
  • 原文地址:https://www.cnblogs.com/dreampursuer/p/7827411.html
Copyright © 2020-2023  润新知