I suspect this question is coming up because you have come from a Matlab background in which everything is treated as a matrix. In Matlab all 1D data sets are treated either as a row or a column vector and the indexing is short-circuited so that specifying a single index treats both as 1D lists.
Numpy does not deal with matrices, per se, but rather with nested lists. Lists of lists have a similar interpretation to the matrices of Matlab, but there are key differences. For instance, Numpy will not make any assumptions about which element you mean if you only give it a single index, the indexing always acts the same regardless of the depth of the nested lists.
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr)
>> [1 2 3 4]
print(arr[0])
>> 1
arr.shape = [4, 1]
print(arr)
>> [[1]
>> [2]
>> [3]
>> [4]]
print(arr[0])
>> [1]
arr.shape = [1, 4]
print(arr)
>> [[1 2 3 4]]
print(arr[0])
>> [1 2 3 4]