Yes and no. If you look at the definition Data.List.inits:
inits :: [a] -> [[a]]
inits xs = [] : case xs of
[] -> []
x : xs' -> map (x :) (inits xs')
You will see that it is defined recursively. This means that each item in the resulting list is built on the previous item in the list. Therefore, if you need any n-th element, you need to collect all n-1 previous elements.
Now you can define a new function
inits' xs = [] : [take n xs | (n, _) <- zip [1..] xs]
. inits' [1..] !! 10000, , . , inits , .
, inits. , " ", .