zoukankan      html  css  js  c++  java
  • numpy数组中冒号和负号的含义

    numpy数组中":"和"-"的意义

    觉得有用的话,欢迎一起讨论相互学习~

    我的微博我的github我的B站

    在实际使用numpy时,我们常常会使用numpy数组的-1维度和":"用以调用numpy数组中的元素。也经常因为数组的维度而感到困惑。

    • 总体来说,":"用以表示当前维度的所有子模块
    • "-1"用以表示当前维度所有子模块最后一个,"负号用以表示从后往前数的元素,-n即是表示从后往前数的第n个元素"
    • 分片功能

    a[1: ] 表示该列表中的第1个元素到最后一个元素,而,a[ : n]表示从第0个元素到第n个元素(不包括n)

    import numpy as np
    
    POP_SIZE = 3
    total_size = 10
    idx = np.arange(total_size)
    good_idx_1 = idx[-POP_SIZE:]
    good_idx_2 = idx[:-POP_SIZE]
    good_idx_3 = idx[POP_SIZE:]
    good_idx_4 = idx[:POP_SIZE]
    
    print("good_idx_1", good_idx_1)
    print("good_idx_2", good_idx_2)
    print("good_idx_3", good_idx_3)
    print("good_idx_4", good_idx_4)
    
    # good_idx_1 [7 8 9]
    # good_idx_2 [0 1 2 3 4 5 6]
    # good_idx_3 [3 4 5 6 7 8 9]
    # good_idx_4 [0 1 2]
    

    测试代码

    import numpy as np
    
    b = np.arange(start=0, stop=24, dtype=int)
    
    print('b.shape', b.shape)
    # b.shape (24,)
    b1 = b.reshape((4, 2, 3))
    print('the value of b1
    ', b1)
    # the value of b1
    #  [[[ 0  1  2]
    #   [ 3  4  5]]
    #
    #  [[ 6  7  8]
    #   [ 9 10 11]]
    #
    #  [[12 13 14]
    #   [15 16 17]]
    #
    #  [[18 19 20]
    #   [21 22 23]]]
    
    print('b1[-1]
    ', b1[-1])
    # 从最外层的维度分解出最后一个模块
    # b1[-1]
    # [[18 19 20]
    #  [21 22 23]]
    for a in b1[-1]:
        print('s')
    # 在这个模块中有两个小的模块,所以程序运行两次
    # s
    # s
    
    print('b1[:-1]
    ', b1[:-1])
    # 从最外层的模块中分解出除最后一个子模块后其余的模块
    
    # b1[:-1]
    #  [[[ 0  1  2]
    #   [ 3  4  5]]
    #
    #  [[ 6  7  8]
    #   [ 9 10 11]]
    #
    #  [[12 13 14]
    #   [15 16 17]]]
    for a1 in b1[:-1]:
        print('s')
    # 在这个模块中有三个小的模块,所以程序运行两次
    # s
    # s
    # s
    
    print('b1[-1:]
    ', b1[-1:])
    # 写在最后一个维度的":"没有实质性作用,此处表示的意思和b1[-1]相同
    # b1[-1:]
    #  [[[18 19 20]
    #   [21 22 23]]]
    
    print('b1[:,-1]
    ', b1[:, -1])
    # 表示取出最外层的所有维度后每一个子模块中选择最后一个子模块
    # b1[:,-1]
    #  [[ 3  4  5]
    #  [ 9 10 11]
    #  [15 16 17]
    #  [21 22 23]]
    
    print('b1[:,:,-1]
    ', b1[:, :, -1])
    # 表示取最里层维度的最后一个元素重新组成新的元组
    # b1[:,:,-1]
    #  [[ 2  5]
    #  [ 8 11]
    #  [14 17]
    #  [20 23]]
    
    
    
  • 相关阅读:
    FineReport——函数
    FineReport——插入行策略
    FineReport——JS二次开发(CSS改变控件样式)
    FineReport——JS二次开发(下拉框)
    汽车系统
    Ubuntu Software setup
    Win 10 乱码 & 字体横过去了
    U-boot 2016.11 代码结构 dra7xx
    samba Ubuntu 16.04
    ftp Ubuntu16.04
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/8572521.html
Copyright © 2011-2022 走看看