gpt4 book ai didi

python - 为什么 np.where 没有返回预期值

转载 作者:太空宇宙 更新时间:2023-11-04 09:24:40 26 4
gpt4 key购买 nike

初始化代码

arr = np.zeros((2,2,2,2))

我的输入数组是

[[[[0.5, 1. ],
[0.6, 2. ]],

[[0. , 0. ],
[0. , 0. ]]],


[[[0. , 0. ],
[0. , 0. ]],

[[0. , 0. ],
[0. , 0. ]]]]

命令

np.where(arr > 0)  

输出

(array([0, 0, 0, 0]),
array([0, 0, 0, 0]),
array([0, 0, 1, 1]),
array([0, 1, 0, 1]))

元组的维度
state_0 * state_1 * action * new_state_1 * new_state_2

问题

  1. 为什么上面元组的最后一个值不是arr[0,0,1,0]
  2. 如何找到值大于零的 new_states?

最佳答案

结果是正确的,你只是读错了。第一行中的每个数字代表结果的第一个索引。第二行代表第二个索引。所以,

(array([0, 0, 0, 0]),
array([0, 0, 0, 0]),
array([0, 0, 1, 1]),
array([0, 1, 0, 1]))

对应于 arr[0,0,0,0]、arr[0,0,0,1] 等处的点。

如果结果不是正方形,您可能就不会那么困惑了。例如试试这个:

np.where(arr==0)
(array([0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1], dtype=int64), 
array([1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1], dtype=int64),
array([0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1], dtype=int64),
array([0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], dtype=int64))

如您所见,行不能对应一个单元的位置。

关于python - 为什么 np.where 没有返回预期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58387376/

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