# Vector/array and boolean mask using logic operators

**URL:** https://discourse.julialang.org/t/vector-array-and-boolean-mask-using-logic-operators/121369
**Category:** General Usage
**Tags:** array, math, boolean
**Created:** [October 16, 2024, 9:21am UTC](https://discourse.julialang.org/t/vector-array-and-boolean-mask-using-logic-operators/121369 "2024-10-16T09:21:30Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Ju\_ska](https://avatars.discourse-cdn.com/v4/letter/j/ecd19e/32.png) [@Ju\_ska](https://discourse.julialang.org/u/Ju_ska)
#### Post date: [October 16, 2024, 9:21am UTC](https://discourse.julialang.org/t/vector-array-and-boolean-mask-using-logic-operators/121369/1 "2024-10-16T09:21:30Z")

</div>

Hi,

I would like to do the same thing as in Python:

```julia
import numpy as np

arr=np.array([1,2,3,4,5,6])
mask=(arr<3)|(arr>=4)

```

which gives as result

```julia
array([True, True, False, True, True, True])

```

I tried stuff in Julia, but mostly went into:

```julia
ERROR: TypeError: non-boolean (BitVector) used in boolean context

```

---

<div class="post-metadata">

### Author: ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)
#### Post date: [October 16, 2024, 9:39am UTC](https://discourse.julialang.org/t/vector-array-and-boolean-mask-using-logic-operators/121369/2 "2024-10-16T09:39:27Z")

</div>

Not sure what you tried in Julia, but this works:

```julia
julia> arr = collect(1:6);

julia> mask = (arr .< 3) .|| (arr .>= 4)
6-element BitVector:
 1
 1
 0
 1
 1
 1

```

---

<div class="post-metadata">

### Author: ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)
#### Post date: [October 16, 2024, 9:40am UTC](https://discourse.julialang.org/t/vector-array-and-boolean-mask-using-logic-operators/121369/3 "2024-10-16T09:40:14Z")

</div>

Or

```julia
julia> .!in(3:4).(arr)

```

---

<div class="post-metadata">

### Author: ![Ju\_ska](https://avatars.discourse-cdn.com/v4/letter/j/ecd19e/32.png) [@Ju\_ska](https://discourse.julialang.org/u/Ju_ska)
#### Post date: [October 16, 2024, 9:42am UTC](https://discourse.julialang.org/t/vector-array-and-boolean-mask-using-logic-operators/121369/4 "2024-10-16T09:42:31Z")

</div>

Thanks a lot !

I was trying stuff like:

```julia
mask = isless.() || isequal.() || isless.()

```

---

<div class="post-metadata">

### Author: ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)
#### Post date: [October 16, 2024, 10:33am UTC](https://discourse.julialang.org/t/vector-array-and-boolean-mask-using-logic-operators/121369/5 "2024-10-16T10:33:58Z")

</div>

The key is to use a dot that tells Julia the operation is applied elementwise (which numpy does by default):

```julia
julia> x = [true, false]
2-element Vector{Bool}:
 1
 0

julia> x || x
ERROR: TypeError: non-boolean (Vector{Bool}) used in boolean context
Stacktrace:
 [1] top-level scope
   @ REPL[6]:1

julia> x .|| x
2-element BitVector:
 1
 0

```
