如何为numpy数组中的标量变量赋值?

时间:2016-06-18 08:26:27

标签: python arrays numpy

我写了一个for-loop,并希望将值分配给数组中等于-inf的第一个变量。完整的代码如下:

cList = np.full((5), -np.inf)
for i in range(5):
    newest = another_array[i][1]
    cList[cList==-np.inf][0] = newest

代码没有抛出任何错误。但是,值赋值失败。你有什么想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

此:

cList[cList==-np.inf]

复制所选数据,而不是视图,因此:

cList[cList==-np.inf][0] = newest

修改副本,保持cList不变。

反复搜索cList -inf的实例是一种非常低效的方法。最佳解决方案取决于您的计划的详细信息。对于您发布的简单示例,您可以执行

c = another_array[:5, 1].copy()  # or just another_array[:5, 1] if a view is fine

对于更复杂的情况,您可能希望创建要分配的值数组并执行

c[c == -np.inf] = values