Contents of a table called pipe.txt... totally not fancy could have leading trailing whatever, but your pipes are there
a|bc|efgh|ijk
Anything is possible, including rearranging, alternate dtypes (numbers, text etc)
dt = [('A', '<U5'), ('B', '<U5'), ('C', '<U5'), ('D', '<U5')]
txt = np.loadtxt("c:/temp/pipe.txt", dtype=dt, delimiter="|")
txt
array(('a', 'bc', 'efgh', 'ijk'),
dtype=[('A', '<U5'), ('B', '<U5'), ('C', '<U5'), ('D', '<U5')])
txt['A']
array('a',
dtype='<U5')
txt[['A', 'C', 'B', 'D']]
Out[26]:
array(('a', 'efgh', 'bc', 'ijk'),
dtype=[('A', '<U5'), ('C', '<U5'), ('B', '<U5'), ('D', '<U5')])