如何解决这段代码是关于什么的?很难解释
import numpy as np
np.where([[True,False],[True,True]],[[1,2],[3,4]],[[5,6],[7,8]])
输出:
array([[1,4]])
[True,True] 是什么意思?
解决方法
第一个列表(带有布尔值)确定将从其他两个列表中的哪个列表中选取一个值。
所以如果我们垂直对齐这些值,我们有:
np.where([[True,False],[True,True]],[[ 1,2],[ 3,4]],[[ 5,6],[ 7,8]])
现在当第一个列表有一个 True
时,那么对应的值(对于结果)将从第一个数据列表(即来自 [[1,[3,4]])中取出.如果它是 False
,它将从另一个列表中取出(即来自 [[5,[7,8]])。
让我用星号标记所选元素:
np.where([[True,[[ *1,[ *3,*4]],# <-- select when True
[[ 5,*6],8]]) # <-- select when False
因此结果是:
[[ 1,4]]
,
第一个参数是条件:
[[True,True]]
True 返回 X,False 返回 Y。
第二个参数包含数据(X,Y):
[1,[[5,8]]
否则意味着 X=[1,4]
,Y=[5,8]
。
迭代:
- 第一个条件为 True,我们得出 X = 1。
- 第二个条件为 False,我们得出 Y = 6。
- 第三个条件为真,我们得到 X = 3
- 第四个条件为真,我们得到 X = 4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。