【问题标题】:How to set the same value in multiple index of array once python?一次python如何在数组的多个索引中设置相同的值?
【发布时间】:2021-12-05 14:09:41
【问题描述】:

我有这样的数组: a=[1,2,3,4,5,6,7]

我需要将索引 1 , 4 ,5 的值替换为值 10 但不使用 for 循环。

结果: a=[1,10,3,4,10,10,7]

【问题讨论】:

  • 注意作业,实际上我有超过 1000 个索引要设置为相同的值。这就是我需要解决方案的方式
  • 使用索引的标准是什么?
  • 也许使用一个while循环。
  • 那为什么不能使用for循环呢?
  • @Pedro Maia,我不想使用循环,因为它需要时间

标签: python arrays


【解决方案1】:

我猜你可以使用 numpy 来做这个:

import numpy as np
    
a = np.array([1, 2, 3, 4, 5, 6, 7])
    
indices = [1, 4, 5]
        
a.put(indices, 10)

结果:

array([ 1, 10,  3,  4, 10, 10,  7])

【讨论】:

  • 嗯,使用 numpy 的美妙之处在于,您可以将索引数组用作.....索引!就做a[indices] = 10...
【解决方案2】:

这样好吗?

a[1] = a[4] = a[5] = 10

【讨论】:

  • 我在数组中有这样的索引:index=[1,4,5],这只是一个例子,实际上我有更多的 1000index 设置为相同的值
  • 那么就没有办法不使用循环(据我所知)@Asma01
【解决方案3】:

您可以使用 numpy 来执行此操作。

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6, 7])
toChange = [1, 4, 5]
a[toChange] = 10 # changes all indices in toChange into 10

您甚至可以传递一个列表来将每个选定的索引更改为不同的值:

a[toChange] = [0, 1, 10]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-18
    • 2018-05-21
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    • 2019-02-14
    相关资源
    最近更新 更多