【问题标题】:How to print even index values of any array | NumPy |如何打印任何数组的偶数索引值 |数字 |
【发布时间】:2021-11-06 16:14:46
【问题描述】:

我是一个学习者,有点卡住了我如何打印数组的偶数索引值

我的代码:

import numpy as np
arr_1 = np.array([2,4,6,11])
arr_1 [ (arr_1[ i for i in range(arr_1.size) ] ) % 2 == 0  ]

预期输出:

2,6

2 -> 在索引 0 下

6 -> 在索引 2 下

两者都是偶数

【问题讨论】:

    标签: python list numpy


    【解决方案1】:

    IIUC,您可以使用list 中的[start:end:step] 并得到您想要的,如下所示:

    >>> arr_1 = np.array([2,4,6,11])
    >>> arr_1[::2]
    array([2, 6])
    
    >>> list(arr_1[::2])
    [2, 6]
    
    >>> print(*arr_1[::2], sep=',')
    2,6
    

    【讨论】:

    • 我会说这是正确的方法,而不是循环或列表推导 - 它更快,它是“本机” numpy 方法,它的代码更简洁等等出现错误等的可能性要小得多
    【解决方案2】:
    • 您的问题是您正在迭代 range() 函数返回的内容。
    • 这显然不是你原来的arr_1
    • 在我的代码中,我们只是遍历arr_1,而不使用任何rangelength

    有效的代码:

    import numpy as np
    
    arr_1 = np.array([2,4,6,11])
    arr_1 = [i for index, i in enumerate(arr_1) if ((index % 2) == 0)]
    
    print(arr_1)
    

    输出:

    [2, 6]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2022-11-25
      • 1970-01-01
      相关资源
      最近更新 更多