python
  • arrays
  • numpy
  • 2016-01-07 33 views -1 likes 
    -1

    为什么numpy数组可以通过列表进行索引,但不能通过列表理解?为什么我不能通过列表理解索引数组?

    lst = np.array(lst = ["a","b","c","d"]) 
    
    ind = [i for i in range(4) if i%2 == 0] 
    
    # Indexing by the list works 
    lst[ind] 
    
    Out[28]: 
    array(['a', 'c'], 
         dtype='|S1') 
    
    
    # Trying to use the list comprehension without storing it in an object first does not 
    
    lst[i for i in range(4) if i%2 == 0] 
    
        File "<ipython-input-29-6256b805fa19>", line 1 
        lst[i for i in range(4) if i%2 == 0] 
          ^
    SyntaxError: invalid syntax 
    
    +3

    这不是一个列表理解。你可能需要'lst [[i for i in range(4)if i%2 == 0]]'。你的语法只是无效的Python。 –

    +0

    我可以问你为什么使用numpy数组作为字符串项?不是Numpy应该用于数字吗? – tglaria

    +1

    @tglaria我不使用它作为字符串,这只是一个例子 –

    回答

    1

    你只需要一组额外的括号内的“遏制”列表理解:

    lst[[i for i in range(4) if i%2 == 0]] 
    
    相关问题