Python 关于 numpy 数组索引中的布尔标量的文档 | 您所在的位置:网站首页 › python里的索引 › Python 关于 numpy 数组索引中的布尔标量的文档 |
在主索引文档页面上有一个部分用于 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 实验室设备网 版权所有 |