I think you're using the term 1D
array in a slightly ill-defined way.
The one option returns an array of shape (2, 1), and the other returns a list-like array of shape (2, ).
They're both "mathematically" one-dimensional, but they have different numpy shapes.
So what you're aiming for is to get a more matrix-like array, of shape (2, 1), and that's done by slicing the wanted indexes over all dimensions, as opposed to choosing a specific index.
Here's a more intuitive case to consider, taking things to an extreme by slicing or choosing over both dimensions:
import numpy as np
a = np.array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]])
specific_index_value = a[0, 0]
print(specific_index_value)
print(type(specific_index_value))
print(str(specific_index_value) + ' is a scalar, not a 1X1 matrix')
>> 1
>> <class 'numpy.int32'>
>> 1 is a scalar, not a 1X1 matrix
sliced_index_value = a[:1, :1]
print(sliced_index_value)
print(type(sliced_index_value))
print(str(sliced_index_value) + ' is a matrix, with shape {}'.format(sliced_index_value.shape))
>> [[1]]
>> <class 'numpy.ndarray'>
>> [[1]] is a matrix, with shape (1, 1)
Does that make sense?
Good luck!