【问题标题】:How to change element in np.array by index [duplicate]如何通过索引更改np.array中的元素[重复]
【发布时间】:2021-04-30 03:08:33
【问题描述】:

如何在不使用任何循环和 if 语句的情况下通过索引更改 np 数组中的元素。 例如我们有数组[1,2,3,4],每隔一个元素,从0开始,我想改为10。这样得到[10,2,10,4]。

【问题讨论】:

  • arr[::2] = 10

标签: python numpy


【解决方案1】:

您可以利用 NumPy 切片:

a = np.arange(10)
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

a[::2] = 10
#array([10,  1, 10,  3, 10,  5, 10,  7, 10,  9])

您可以使用[start:stop:step] 格式对数组进行切片。你可以阅读更多here

【讨论】:

    【解决方案2】:

    简单来说,你可以使用:a[::2]=10

    【讨论】:

      【解决方案3】:

      你去吧:

      import numpy as np
      arr = np.array([1,2,3,4])
      for i in range(len(arr)):
        if i%2==0:
          arr[i]=10
      print(arr)
      

      输出:

      [10  2 10  4]
      

      没有循环和 if 语句:

      import numpy as np
      arr = np.array([1,2,3,4])
      arr[0::2] = 10
      

      输出:

      array([10,  2, 10,  4])
      

      我使用了 Numpy 的切片,它的作用是 [start:stop:step]

      【讨论】:

      • 我们可以在没有任何循环和 if 语句的情况下做到这一点吗?
      • 你去。我已经进行了编辑
      • 谢谢!那行得通
      • 很高兴它有帮助。您可以通过接受答案来结束此问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-07
      • 2017-05-03
      • 1970-01-01
      • 2021-04-02
      • 2019-05-27
      • 2012-05-16
      • 1970-01-01
      相关资源
      最近更新 更多