【问题标题】:Select specific column from list of np.arrays从 np.arrays 列表中选择特定列
【发布时间】:2021-01-19 12:49:03
【问题描述】:

我有一个数组列表,我想将每个数组的前 10 列传递给一个缩放器来转换它们,而不是其余的列,因为它们是虚拟变量。

每个单独的数组都是二维的,包含与特定列对应的数据。

我试过了:

list[:][:10]

但这只是给了我前 10 个数组,而不是所有数组的前 10 列。

【问题讨论】:

  • 所有数组的形状都一样吗? list[:] 只是列表的一部分,它将返回整个列表,然后 [:10] 将给出前 10 个元素,如所观察到的。如果不能将所有数组堆叠成 3D 数组,则必须遍历列表,即 [arr[:10] for arr in list]

标签: python arrays pandas numpy


【解决方案1】:

您也可以将外部列表转换为 numpy 数组 (np.array(my_list)) 然后使用多维索引,例如:my_np_list[:, :10]

【讨论】:

    【解决方案2】:

    假设每个数组的长度相同,试试np.stack带索引-

    arr = [np.array([1,2,3,4]),
           np.array([4,5,6,7]),
           np.array([8,9,10,11])]
    
    #Getting the first 2 column (:10 for first 10)
    np.stack(arr)[:,:2]
    
    array([[1, 2],
           [4, 5],
           [8, 9]])
    

    【讨论】:

      猜你喜欢
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 2014-10-03
      • 2019-06-06
      • 2016-02-24
      相关资源
      最近更新 更多