Numpy:如何在 numpy 中选择项目并为其赋值

Posted

技术标签:

【中文标题】Numpy:如何在 numpy 中选择项目并为其赋值【英文标题】:Numpy: how to select items in numpy and assign its value 【发布时间】: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

【问题讨论】:

【参考方案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

以上是关于Numpy:如何在 numpy 中选择项目并为其赋值的主要内容,如果未能解决你的问题,请参考以下文章

如何在numpy数组中选择

从我添加日期选择器并为其设置本地通知之日起,如何计算和显示另外 4 天?

如何计算numpy中多个项目的出现? [复制]

使用函数方法优化numpy循环

如何使用numpy从列表中随机选择n个元素?

React Native - 如何使用本地 SVG 文件(并为其着色)