Python:从两个数组创建掩码

时间:2015-08-25 14:26:29

标签: python numpy mask

我想从一个数组的已定义条目创建一个掩码,并将其应用于其他数组。我是Python的初学者,不知道如何搜索它。

示例:

values = [  1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.,  10.]
wanted = [  1.,   4.,   7.,  10.]

mask = [True, False, False, True, False, False, True, False, False, True]

other_array_1 = [ 1,  3,  5,  7,  9, 11, 13, 15, 17, 19]
other_array_2 = [ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18]

wanted_array_1 = other_array_1[mask]
wanted_array_1 = [1, 7, 13, 19]
wanted_array_2 = other_array_2[mask]
wanted_array_2 = [0, 6, 12, 18]

我找到了如何选择想要的值:

select = [i for i in wanted if i in values]

然后我试图制作一个面具:

mask_try = (i for i in wanted if i in values)

我不确定我创造了什么,但它不是面具。它告诉我这是一个

<generator object <genexpr> at 0x7f6aa4872460>

无论如何,有没有办法为numpy数组创建这样的掩码?

1 个答案:

答案 0 :(得分:2)

使用authorisationTicketApp.controller('LookupTicketController', ['$scope', function($scope) { $scope.text = "test"; console.log('LookupTicketController .... called'); }]);

in1d

关于浮点平等的常见警告适用。如果您的输入已排序,您还可以查看>>> values = [ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.] >>> wanted = [ 1., 4., 7., 10.] >>> mask = np.in1d(values, wanted) >>> mask array([ True, False, False, True, False, False, True, False, False, True], dtype=bool) >>>