【问题标题】:Construct matrix using selection of rows and columns in numpy使用 numpy 中的行和列选择构造矩阵
【发布时间】:2018-04-09 23:38:57
【问题描述】:

在NumPy,假设我有一个矩阵X:

X = array([[3, 1, 4, 5], [5, 1, 2, 1], [4, 4, 0, 1], [0, 3, 0, 3], [1, 2, 3, 4])

如何使用X 的第一个(第 0 行)、最后一个和最后一个(第 3、4 行)构造一个新矩阵?

得到的矩阵是:

Y = array([[3, 1, 4, 5], [0, 3, 0, 3], [1, 2, 3, 4])

我无法列出我想为新矩阵包含的所有行,因为对于我拥有的数据,这就像选择原始矩阵的 (20, 60), (90, 120) 行来构造一个新矩阵矩阵。

【问题讨论】:

    标签: numpy matrix


    【解决方案1】:

    使用np.r_ 获取那些连接的行索引并简单地索引到输入数组的行,就像这样 -

    X[np.r_[0, 3:5]]        # for sample case
    
    X[np.r_[20:60, 90:120]] # for actual case
    

    示例运行 -

    In [146]: X
    Out[146]: 
    array([[3, 1, 4, 5],
           [5, 1, 2, 1],
           [4, 4, 0, 1],
           [0, 3, 0, 3],
           [1, 2, 3, 4]])
    
    In [147]: X[np.r_[0, 3:5]]
    Out[147]: 
    array([[3, 1, 4, 5],
           [0, 3, 0, 3],
           [1, 2, 3, 4]])
    

    在更大的随机数组上进行形状测试的示例运行 -

    In [150]: X = np.random.rand(200,10)
    
    In [151]: X[np.r_[20:60, 90:120]].shape
    Out[151]: (70, 10) # 70 rows selected
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 2014-07-03
      • 1970-01-01
      • 2017-11-18
      • 2015-03-09
      • 1970-01-01
      相关资源
      最近更新 更多