numpy.where()在此示例中究竟如何选择元素?
发布时间:2020-05-24 22:43:55 所属栏目:Python 来源:互联网
导读:从numpy docs起 np.where([[True, False], [True, True]], ... [[1, 2], [3, 4]], ... [[9, 8], [7, 6]]) array([[1, 8], [3, 4]]) 我以[[True,False
|
从numpy docs起
我以[[True,True]]部分为条件,并且[[1,4]]和[[9,6] ]]根据docs参数分别为x和y. 那么,在以下示例中,该函数如何精确地选择元素? 另外,为什么这些示例中的元素类型是列表?
最佳答案
在第一种情况下,每个项都是(2,2)数组(或更确切地说,可以做成这种数组的列表).对于条件中的每个True,它将返回x中的对应项[[1-] [3,对于每个False,将返回y中的项[[-8] [–]]
在第二种情况下,列表参差不齐
数组是(2,),带有2个列表.并且当转换为布尔值时,为2元素数组,且都为True.只有一个空列表会产生False.
然后where仅返回x值. 第二种情况是可以理解的,但却是病态的. 更多细节 让我们用一个简单的案例来更详细地演示.条件数组相同:
单参数版本,等效于condition.nonzero():
一些人发现更容易可视化该元组的转置-条件为True的3对坐标:
现在是具有3个参数和标量值的最简单版本.
可视化此操作的一个好方法是使用两个隐藏的任务.
另一种执行此方法的方法是使用y值初始化数组,并在非零值处填充x值.
如果x和y是数组,而不是标量,则此蒙版分配将需要完善,但希望可以对此有所帮助. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
