# Julia: How to Find the Position of An Element in An Array

Hongtao Hao / 2021-07-14

This post is tested under Julia v1.6.1 and DataFrames v1.2.0.

Base.findfirst() will do the job.

Let’s look at a simple example.

using DataFrames
a = repeat('a':'z')
b = repeat(14:26, outer = 2)
df = DataFrame(:A => a, :B => b)

julia> df

26×2 DataFrame
Row │ A     B
│ Char  Int64
─────┼─────────────
1 │ a        14
2 │ b        15
3 │ c        16
4 │ d        17
5 │ e        18
6 │ f        19
7 │ g        20
8 │ h        21
⋮  │  ⋮      ⋮
20 │ t        20
21 │ u        21
22 │ v        22
23 │ w        23
24 │ x        24
25 │ y        25
26 │ z        26
11 rows omitted


Let’s say you want to know the index of the row where A = 't':

julia> findfirst(isequal('t'), df.A)
20


Or, you want to know the index of the first element in df.B that is larger than 17:

julia> findfirst(x -> x>17, df.B)
5


Also useful are the functions of Base.findmax() and Base.findmin() , which return both the value and the location.

julia> using Random

julia> Random.seed!(1234)
MersenneTwister(1234)

julia> rand_num = rand(10)
10-element Vector{Float64}:
0.5908446386657102
0.7667970365022592
0.5662374165061859
0.4600853424625171
0.7940257103317943
0.8541465903790502
0.20058603493384108
0.2986142783434118
0.24683718661000897
0.5796722333690416

julia> findmax(rand_num)
(0.8541465903790502, 6)

julia> findmin(rand_num)
(0.20058603493384108, 7)