Python Numpy:如何在Numpy中选择项目并分配其值
我在按列表分配新值时遇到问题 我想通过numpy数组的索引来更改s numpy中的12项值,我希望我选择的每个索引都是不同的。 所以我创建了一个随机列表。sample(范围(0,len,s),12)来选择12个不同的索引。并通过这个索引更改numpy数组s()中的一些值 但是,我得到了一个错误: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.
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