【发布时间】:2020-08-24 15:15:28
【问题描述】:
for ii in range (0,70):
for jj in range (0,70):
f_max = 0
for k in range (0,50):
if np.abs(np.max(f_5.all())) > f_max:
f_max = f_5 #(+/-)
idx=k
这里f_5 形状是(70,70,50),它的最大值在 360 左右,最小值在 230 左右。我想将最大值和点索引保存在 k 中。但是f_max 没有更新。
【问题讨论】:
-
阅读“ndarray.all”的文档(包括示例)。你认为“所有”应该怎么做?
-
如果我使用任何提供此 ValueError: 具有多个元素的数组的真值是不明确的。使用 a.any() 或 a.all()
-
您可以使用
np.abs(f_5.max())找到最大值,然后将其与f_max进行比较。如果合适,您可以使用idx = f_5.argmax()。 -
你不使用
ii和jj,每次都对数组应用all。密切关注循环中发生的事情。练习更简单的一维列表。 -
请更新您的代码的更完整的可重现版本,并对您想要实现的目标进行更多解释,以便我们提供更好的帮助。谢谢。
标签: python numpy data-manipulation