我不知何故與原始人工智能混淆,并遇到了這段我很難理解的代碼。我閱讀了一些網站,但似乎沒有我正在尋找的答案。:( 誰能解釋這種情況下的 np.where() 函式?我突然想到,如果 curr_node.get_curr_child() 等于 0,這行代碼使 child_pos 成為一個空的二維陣列。但我不確定......很高興每回復。
有問題的代碼是:
child_pos = np.where(np.asarray(curr_node.get_curr_child()) == 0)[0][0]
uj5u.com熱心網友回復:
不考慮您的代碼, np.where 回傳您在 where 陳述句中搜索的值的位置。
例如:
讓我們假設
matrix = array([[1., 1., 1.],
[1., 0., 1.],
[1., 1., 0.]])
如果我們運行 np.where(matrix == 0) 我們會得到什么
(array([1, 2], dtype=int64),
array([1, 2], dtype=int64))
這基本上為您提供了原始二維陣列中值 0 的行/列位置。第一個陣串列示行位置,第二個陣串列示列位置。
這個邏輯也擴展到更高/更低的維度。
回傳到您的代碼,將 get_curr_child 的結果轉換為 np 陣列,然后從 np.where 結果的第一個維度中獲取第一個值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/335462.html
上一篇:迭代陣列串列以用作函式中的輸入
下一篇:numpy洗牌一小部分子陣列
