我不知怎么搞混了原始人工智能,遇到了这段我很难理解的代码。
我读了一些网站,但似乎没有我正在寻找的答案。(
谁能解释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的第一个维度获取第一个值。结果。