我写了一个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
代码没有抛出任何错误。但是,值赋值失败。你有什么想法吗?提前谢谢!
答案 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