Python Numpy:如何在Numpy中选择项目并分配其值

Python Numpy:如何在Numpy中选择项目并分配其值,python,list,numpy,for-loop,range,Python,List,Numpy,For Loop,Range,我在按列表分配新值时遇到问题 我想通过numpy数组的索引来更改s numpy中的12项值,我希望我选择的每个索引都是不同的。 所以我创建了一个随机列表。sample(范围(0,len,s),12)来选择12个不同的索引。并通过这个索引更改numpy数组s()中的一些值 但是,我得到了一个错误:SyntaxError:cannotassigntofunctioncall import numpy as np import random N = 20 s = np.

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

我想通过numpy数组的索引来更改s numpy中的12项值,我希望我选择的每个索引都是不同的。 所以我创建了一个随机列表。sample(范围(0,len,s),12)来选择12个不同的索引。并通过这个索引更改numpy数组s()中的一些值 但是,我得到了一个错误:
SyntaxError:cannotassigntofunctioncall

    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

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

我不想为列表编制索引。实际上,我想通过numpy数组的索引来更改12个项目的值s numpy,我希望我选择的每个索引都不同。我仍然不完全清楚,但可能您希望将for循环更改为
范围内的I(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。所以
s(0)=10,s(1)=10,s(3)=10
。这就是我想要的。所以
alist=random.sample(范围0,len(s+1),3)
如果输出是
alist=0,1,2,我将选择s(0),s(1),s(2)要更改它们的值,请在列表中为i使用
s(i)=alist
s(0)=10,s(1)=10,s(2)=10