Это (отличное) продолжение вопроса I , опубликованного ранее .Мой предыдущий CSV-файл был плохо отформатирован, и @The Puternerd любезно предложил сгладить 2d-массив перед записью его в файл.
Итак, вот что у меня есть:
output = open(CSVFilepath,"w")
csvwriter=csv.writer(output, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
for imagePath in glob.glob(MaskImagePath):
...
#myDescriptor is the 2d np array with varying rows and fixed columns (60)
myrow=[imageID,myDescriptor.shape[0],myDescriptor.flatten()]
Вот как выглядит мой CSV-файл:
000000216739.jpg,224,[0. 0. 0. ... 0. 1. 2.]
000000001268.jpg,173,[0. 0. 0. ... 0. 1. 0.]
000000166259.jpg,195,[0. 0. 0. ... 0. 0. 2.]
000000368900.jpg,226,[0. 0. 0. ... 1. 1. 1.]
Но когда я попытался получить третий элемент с помощью:
with open(CSVFilepath,'r') as fin:
reader = csv.reader(fin,delimiter=',')
for row in reader:
print(row[2])
print(type(row[2]))
print(np.array(list(row[2])))
возвращает:
[0. 0. 0. ... 1. 3. 2.]
<class 'str'>
['[' '0' '.' ' ' '0' '.' ' ' '0' '.' ' ' '.' '.' '.' ' ' '1' '.' ' ' '3' '.' ' ' '2' '.' ']']
Значит ли это, что я не сохранил значения должным образом?Любой совет будет очень признателен !!!
********** Обновление **************
Чтение инструкций @Navneethниже, сейчас у меня есть этот код:
with open(CSVFilepath,'r') as fin:
reader = csv.reader(fin,delimiter=',')
for row in reader:
print(row[2])
print(type(row[2]))
a = row[2].replace("\n","")
print(a)
print(np.fromstring(a[1:-1], dtype=float, sep=" "))
, но он печатает:
[0. 0. 0. ... 1. 2. 0.]
<class 'str'>
[0. 0. 0. ... 1. 2. 0.]
[0. 0. 0.]
[0. 0. 0. ... 1. 3. 2.]
<class 'str'>
[0. 0. 0. ... 1. 3. 2.]
[0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
<class 'str'>
[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0.]