Struggling with numpy libs where()



我不知怎么搞混了原始人工智能,遇到了这段我很难理解的代码。

我读了一些网站,但似乎没有我正在寻找的答案。(

谁能解释np.where()在这种情况下的功能?

我突然想到这行代码使child_pos成为一个空的2d数组

if curr_node.get_curr_child() == 0 

但是我不确定……很高兴收到大家的回复。

问题代码是:

child_pos = np.where(np.asarray(curr_node.get_curr_child()) == 0)[0][0]

不考虑您的代码,np。Where返回在Where语句中要搜索的值的位置。

例如:

让我们假设

matrix = array([[1., 1., 1.],
[1., 0., 1.],
[1., 1., 0.]])

如果我们运行np。其中(matrix == 0)我们得到的是

(array([1, 2], dtype=int64), 
array([1, 2], dtype=int64))

它基本上给出了原始二维数组中值0的行/列位置。第一个数组表示行位置,第二个数组表示列位置。

这个逻辑也可以扩展到高维/低维。

返回到代码中,将get_curr_child的结果转换为np数组,然后从np的第一个维度获取第一个值。结果。