zoukankan      html  css  js  c++  java
  • numpy切片索引后维度的变化

    对一个numpy数组或矩阵做切片索引,例如对一列或一行数据进行提取。如果索引值是标量,索引后的量维度减小1。如果索引是一个范围如a:b,则索引后维度不变。

    a = np.random.rand(4, 5)
    
    a
    
    Out[13]: 
    array([[0.83451584, 0.27220378, 0.84461958, 0.11096957, 0.02921137],
           [0.96256874, 0.7320878 , 0.40411651, 0.28934631, 0.22163871],
           [0.15108374, 0.39559392, 0.11857293, 0.26880925, 0.60808768],
           [0.83220628, 0.39516063, 0.67430698, 0.41871186, 0.06415003]])
    
    b = a[:, 1].shape
    
    b
    
    Out[15]: (4,)
    
    c = a[:, 1:2].shape
    
    c
    
    Out[17]: (4, 1)
    
    d = a[:, [1]].shape
    
    d
    
    Out[19]: (4, 1)
    

      

    看到a是一个二维矩阵,形状是(4, 5)。

    b对a的第二列进行索引,索引值是1,是一个标量。所以索引后b的维度降1,形状为(4,)。

    c也是对a的第二列进行索引,索引值是1:2,是一个范围,python中上界是取不到的,所以还是索引第二列。但是,此时c的维度是保持原大小仍是2维数据,形状为(4,1)。

    d也是对a的第二列进行索引,索引值是[1],是一个范围list(虽然list中仅有一个元素)。但是,此时d的维度是保持原大小仍是2维数据,形状为(4,1)。

    因此,在对numpy数组使用索引时应当注意不同情况对应的维度变化,避免后续计算维度的不匹配。

     

  • 相关阅读:
    数据结构——第二章 线性结构
    数据结构——第一章 绪论
    2018年
    Node笔记(2)
    Node笔记(1)
    公务员考试
    cf-789A (思维)
    cf188C(最大子段和&&思维)
    zzuli1731 矩阵(容斥)
    九余数定理(同余定理)
  • 原文地址:https://www.cnblogs.com/jiangkejie/p/14110411.html
Copyright © 2011-2022 走看看