按照之前的问题(here),我现在只想将一个点绘制到每个重要的网格值。在我这样做的那一刻
ax.contourf(x, y, z)
for i in x:
for j in y:
if significant[i, j]==True: ax.plot(i, j, 'bo')
这显然非常糟糕,因为它很慢。这个问题有一些简单(快速)的解决方案吗?请注意,x和y的长度不同,我需要x具有可变长度。
答案 0 :(得分:1)
只有在有效的情况下才能进行循环:
for i, j in zip(*np.where(significant)):
ax.plot(i, j, 'bo')
或者,如果x和y不是像范围一样:
for i, j in zip(*np.where(significant)):
ax.plot(x[i], y[j], 'bo')
np.where将返回一个包含两个元素的元组,即非零元素的第一个和第二个索引。