Python 关于 numpy 数组索引中的布尔标量的文档 您所在的位置:网站首页 python里的索引 Python 关于 numpy 数组索引中的布尔标量的文档

Python 关于 numpy 数组索引中的布尔标量的文档

2023-03-27 08:08| 来源: 网络整理| 查看: 265

在主索引文档页面上有一个部分用于

https://numpy.org/doc/stable/user/basics.indexing.html#boolean-array-indexing个

如上所述,索引数组应与索引数组的形状或其轴之一相匹配.

我不认为使用布尔标量进行索引是有文档记录的,或者至少我没有意识到有这样的页面.我怀疑你看到的行为是历史特征没有被清理的结果.

In [137]: x=np.arange(4)

适当的索引,带有与形状相匹配的"掩码":

In [138]: x[np.array([True,False,False,True])] Out[138]: array([0, 3])

掩码不完整会引发错误:

In [139]: x[np.array([True,False,False])] --------------------------------------------------------------------------- IndexError Traceback (most recent call last) Cell In[139], line 1 ----> 1 x[np.array([True,False,False])] x = array([0, 1, 2, 3]) np = IndexError: boolean index did not match indexed array along dimension 0; dimension is 4 but corresponding boolean dimension is 3

我想这通常会返回一个带有警告的结果.

您观察到的是,布尔标量添加了一个大小为1或0的维度:

In [140]: x[True].shape Out[140]: (1, 4) In [141]: x[False].shape Out[141]: (0, 4) In [142]: x[:,False].shape Out[142]: (4, 0)

它显然忽略了多个标量.

我本来想说[True]看起来像[np.newaxis](也就是[None]),但得到的strides更像reshape产生的结果.

我认为这是一种遗留行为,您不应该指望使用它.

索引文档上的注释中的重复引语:

布尔数组的非零等价性不适用于零维布尔array.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有