【问题标题】:Numpy: how to select items in numpy and assign its valueNumpy:如何在 numpy 中选择项目并为其赋值
【发布时间】:2020-09-07 14:09:28
【问题描述】:

我在按列表分配新值时遇到问题。

我想通过 numpy 数组的索引更改 s numpy 中的 12 个项目值,我希望我选择的每个索引都是不同的。 所以我制作了一个列表 random.sample(range(0,len(s),12) 来选择 12 个不同的索引。通过这个索引更改 numpy 数组 s() 中的一些值 但是,我收到了错误:SyntaxError: can't assign to function call

    import numpy as np
    import random
    N = 20
    s = np.zeros([N])
    alist = random.sample(range(0,20),12)
    alist
    for i in alist:
       s(i)=10

【问题讨论】:

    标签: python list numpy for-loop range


    【解决方案1】:

    我不完全确定您要在这里实现什么,但 s(i) 是您的问题:圆括号表示函数调用,但 s 是一个 numpy 数组,所以这不起作用。我认为您正在尝试为列表编制索引,在这种情况下您会使用 s[i]

    【讨论】:

    • 我不是要索引列表。实际上我想通过 numpy 数组的索引更改 numpy 的 12 个项目值,我希望我选择的每个索引都是不同的。
    • 这对我来说还不是很清楚,但也许您希望将 for 循环更改为 for i in range(len(alist)): s[i]=10,但是感觉就像我在黑暗中刺伤。如果您能提供预期的输出,那将会很有帮助。
    • 再次感谢!例如s=(1,2,2,4,5,6)我想通过其下标索引在s中随机选择3。输出可以是s(0),s(1),s(3)但不能像s(0),s(1),s(1),意味着它们每个下标必须不同。然后我改变三个他们的价值从他们的原始价值到 10.so s(0)=10,s(1)=10,s(3)=10。这就是我想要的。
    • so alist=random.sample(range(0,len(s+1),3) 如果输出是alist=0,1,2 我会选择 s(0),s(1),s(2) 来改变它们的值。所以使用for i in alist s(i)= alist s(0)=10,s(1)=10,s(2)=10
    猜你喜欢
    • 1970-01-01
    • 2020-11-14
    • 2013-04-23
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多