x [False]在numpy中做什么?

x [False]在numpy中做什么?,第1张

x [False]在numpy中做什么?

从技术上讲,不需要遮罩的尺寸与您为其索引数组的尺寸匹配。(在以前的版本中,限制甚至更少,您可以避免一些极端的形状不匹配。)

该文档将布尔索引描述为

单个布尔索引数组实际上与x
[obj.nonzero()]相同,如上所述,obj.nonzero()返回整数索引数组的元组(长度为obj.ndim),该数组显示obj的True元素。

nonzero
对于0维输入来说很奇怪,因此这种情况是“实际上相同”结果不相同的一种方式:

布尔数组的非零等价不适用于零维布尔数组。

NumPy对于0维布尔索引具有特殊情况,其动机是希望具有以下行为:

In [3]: numpy.array(3)[True]Out[3]: array([3])In [4]: numpy.array(3)[False]Out[4]: array([], dtype=int64)

我将在源代码中引用处理0维布尔索引的注释:

if (PyArray_NDIM(arr) == 0) {    

虽然这主要是针对0维数组的0维索引,但它也适用于使用布尔值索引多维数组。从而,

x[True]

等于

x[np.newaxis]
,产生一个在前面带有新的length-1轴的结果,并且

x[False]

产生一个结果,其新轴的长度为0,不选择任何元素。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5648111.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存