Я пытаюсь заполнить данные из некоторых файлов CSV в массив Numpy с помощью следующего кода:
PreExArray=zeros([len(TestIDs),numColumns],float)
for row in reader:
if row[1] =='PreEx10SecondsBEFORE':
PreExArray[(j-1),0]=[row[2]]
Однако последняя строка кода выше выдает следующую ошибку:
ValueError: setting an array element with a sequence.
Итак, я распечатал содержимое строки [2] следующим образом:
print 'row[2] is: ',row[2]
Это произвело:
Строка [2]: 0,780083333333
Итак,содержимое строки [2] не является последовательностью, как указывает сообщение об ошибке.Вместо этого содержимое является числом.
Поэтому я использовал следующий код, чтобы поместить содержимое строки [2] в переменную, а затем заполнить PreExArray [(j-1), 0] содержимымэтой переменной, а затем распечатайте содержимое этой переменной:
jones = row[2]
PreExArray[(j-1),0]=jones
print 'PreExArray[(j-1),0] is: ',PreExArray[(j-1),0]
Результат:
PreExArray [(j-1), 0]: 0,780083333333
Таким образом, помещение строки [2] в переменную решает проблему.Но это действительно неаккуратный код, если мне приходится каждый раз помещать его в переменную.
Может кто-нибудь показать мне, как исправить код, чтобы он не выдавал ошибку, когда я набираю что-то намного проще, напримерPreExArray [(j-1), 0] = [row [2]]?
==========================================================================================
ОК.Я переписал код, и теперь он выдает новую ошибку.Новый код выглядит следующим образом:
PreExArray=zeros([len(TestIDs),numColumns],float)
for row in reader:
if row[1] =='PreEx10SecondsBEFORE':
PreExArray[(j-1),0]=row[1]
PreExArray[(j-1),1]=row[2]
Этот исправленный код теперь выдает следующее сообщение об ошибке:
PreExArray[(j-1),0]=row[1]
ValueError: setting an array element with a sequence.
Однако, когда я закомментирую PreExArray [(j-1), 0] = строка [1] следующим образом (#PreExArray [(j-1), 0] = строка [1]), последующие строки выполняются без выдачи ошибки.
Может кто-нибудь сказать мне, как редактировать эточтобы он не продолжал выкидывать эту ошибку?