gpt4 book ai didi

python - 无法使用 np.where() 在复杂的 2D Python 数组中查找元素的索引

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:37 25 4
gpt4 key购买 nike

我尝试使用 numpy.where() 查找元素的索引,但它返回一个空数组。

import numpy as np
grid= np.mgrid[-2:2:5*1j, -2:2:11*1j]
X , Y = grid[0], grid[1]
complex_grid = X+1j*Y
xid, yid= np.where(complex_grid == -1.0 - 0.8j)
print(xid, yid)

它应该返回索引 (1,3),但它返回一个空数组及其数据类型。我做错了什么?

编辑:-我的主要目标是从网格中找到与给定坐标(x,y)相对应的索引。我制作了一个复杂的网格,只是因为我可以融合从 mggrid 获得的两个二维矩阵。

最佳答案

浮点值很少是精确的,因此直接比较它们通常被认为是一个坏主意。

但是您可以使用类似 abs(difference) < epsilon 的内容检查给定值与给定值的接近程度,例如:

>>> xid, yid= np.where(np.abs(complex_grid -(-1.0 - 0.8j)) < 1e-10)
>>> print(xid, yid)
[1] [3]

或者更好:使用 numpy.isclose 它已经做到了这一点,但允许相对和绝对公差和 nan处理(如果您需要这些):

>>> xid, yid= np.where(np.isclose(complex_grid, -1 - 0.8j)))
>>> print(xid, yid)
[1] [3]

关于python - 无法使用 np.where() 在复杂的 2D Python 数组中查找元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42173558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com