代码之家  ›  专栏  ›  技术社区  ›  user1

在Python中选择一系列列而不使用numpy

  •  0
  • user1  · 技术社区  · 4 年前

    我想提取列的范围。我知道如何在numpy中做到这一点,但我不想使用numpy切片操作符。

    import numpy as np
    
    a = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
    arr = np.array(a)
    
    k = 0
    
    print(arr[k:, k+1]) # --> [2 7]
    print([[a[r][n+1] for n in range(0,k+1)] for r in range(k,len(a))][0]) # --> [2]
    

    3 回复  |  直到 4 年前
        1
  •  1
  •   wjandrea sebs    4 年前

    你太复杂了。用你的手指划过一行 a[k:] ,然后用 row[k+1]

    >>> [row[k+1] for row in a[k:]]
    [2, 7]
    
        2
  •  1
  •   Алексей Р   4 年前
    a = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
    k = 0
    print(list(list(zip(*a[k:]))[k+1])) # [2, 7]
    
        3
  •  1
  •   enke    4 年前

    这就是你要找的吗?

    cols = [1,2,3] # extract middle 3 columns
    cols123 = [[l[col] for col in cols] for l in a]
    # [[2, 3, 4], [7, 8, 9]]