Я пытаюсь создать MX2 Numpy матрицу или массив из следующих содержимого файла:параметр DTYPE в Numpy genfromtxt
shell: head WORLD#America.csv
"2013-04-17 12","3","WORLD","#America"
"2013-04-17 13","9","WORLD","#America"
"2013-04-17 14","4","WORLD","#America"
"2013-04-17 15","3","WORLD","#America"
"2013-04-17 16","7","WORLD","#America"
"2013-04-17 17","8","WORLD","#America"
"2013-04-17 18","6","WORLD","#America"
"2013-04-17 19","6","WORLD","#America"
"2013-04-17 20","6","WORLD","#America"
"2013-04-17 21","2","WORLD","#America"
Я пришел через функцию genfromtxt()
, но не увенчались успехом в извлечении своих данных. С файлом под названием f
я попробовал следующее: ts = genfromtxt(f, delimiter=",")
и получил массив, заполненный всеми nan
. Это была только первая попытка, поэтому я прочитал документацию о параметре dtype
, который указывает тип данных массива. Похоже, что для получения матрицы MX2 с записями формы (datetime, int)
у меня было бы следующее: dtype=[('f1', datetime64), ('f2', uint)]
. Когда я сделал это, я получил следующие присваивается переменной ts
:
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L),
(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999), 18446744073709551615L)],
dtype=[('f1', ('<M8[us]', {})), ('f2', '<u8')])
Каждое значение я для матрицы некоторая константа ... Почему она не читать из моего файла? Очевидно, что это не тот результат, который я должен получить.
Как получить желаемую матрицу MX2 или массив с первым столбцом: datetime
, а второй столбец является целым числом, как показано с помощью команды head?
См. Этот ответ: http://stackoverflow.com/questions/2664790/reading-csv-files-in-numpy-where-delimiter-is Я подозреваю, что ваши кавычки вызывают проблемы, и вам нужно будет написать конвертеры вручную. – perimosocordiae
Первый элемент в первом столбце - «2013-04-17 12». В чем смысл «12» в этой области? Это час дня или отдельное поле данных? –
Час дня, правильно! – CodeKingPlusPlus