This sounds like more of PHP question than a WordPress one – get_posts()
just returns an array of objects; interact with them like you would any other numerical array:
$posts = get_posts();
$first_post = $posts[0];
$last_post = array_slice( $posts, -1, 1 );
$everything_but_first_last = array_slice( $posts, 1, -1 );
Check out the complete list of array functions.