以下Python表达式如何工作?

时间:2016-11-20 14:26:38

标签: python numpy

我的代码中有以下python表达式

import numpy as np  
a = np.array([1,0,1,0])  
b = np.array([True,False,False,True])
print a[b],b[a]  

我得到的输出看起来像这样:

[1 0] [False  True False  True]

我无法理解如何生成此输出 任何人都可以解释一下。

1 个答案:

答案 0 :(得分:5)

他们是两个不同的案例

a[b]逻辑索引。索引b必须是布尔数组,相同大小必须是a。每个布尔值b表示接受/离开此a元素。即:对于向量a_i, b_i中的a, b中的每对值:如果b_i == True,请将a_i添加到输出向量,否则忽略它。

b[a]正在使用多个值进行索引。就像在普通的python中一样,你可以b[0]b的第一个值,在numpy中你可以使用数组作为索引来获取多个元素。在您的情况下,这会产生与[b[1], b[0], b[1], b[0]]

相同的结果