Numpy отлично подходит, когда вы хотите загрузить массив чисел.
Формат, который у вас есть, слишком сложен для распознавания numpy, поэтому вы просто получаете массив строк. Это на самом деле не играет на пользу NumPy.
Вот простой способ сделать это без numpy:
result=[]
with open(csvfile,'r') as f:
for line in f:
row=[]
for text in line.split('\t'):
match=re.search('([0-9]/[0-9])',text)
if match:
row.append(match.group(1))
else:
row.append("NA")
result.append(row)
print(result)
выходы
# [['0/0', '0/1', '0/0'], ['NA', '0/1', '0/0']]
по этим данным:
0/0:23:-1.03,-7.94,-83.75:69.15 0/1:34:-1.01,-11.24,-127.51:99.00 0/0:74:-1.02,-23.28,-301.81:99.00
---:23:-1.03,-7.94,-83.75:69.15 0/1:34:-1.01,-11.24,-127.51:99.00 0/0:74:-1.02,-23.28,-301.81:99.00