Я нашел много способов ввода файлов csv с текстовыми записями в виде числовых массивов в Python, таких как this и this, но ни одна из них не была в моей ситуации, и никто не работал для меня. Я также не мог найти ответ в the manual из numpy или других распространенных инструментов для этого, но, возможно, он есть, и я просто не могу этого понять.Как установить строку в float-конвертеры для numpy genfromtxt
У меня есть данные в формате CSV, как это:
"experiment 1"
"var1","var2","var3","var4","var5"
"7","0","1","3","1"
"8","4","3","1","1"
"8","5","3","3","1"
"8","6","3","3","3"
Я попытался считывания данных с помощью
dataArray = np.genfromtxt('Input Data/'+fileName,delimiter=',',skiprows=2)
и я также попытался добавить
.astype(np.float)
до конца. Но то, что я в конечном итоге в любом случае:
[[ nan nan nan nan nan]
[ nan nan nan nan nan]
[ nan nan nan nan nan]
[ nan nan nan nan nan]]
потому, что преобразования строк поиска в числовых столбцов в нан является то, что genfromtxt предполагается сделать в соответствии с документацией. Существует также converters
параметр genfromtxt
, но единственный пример, который я мог найти, чтобы использовать его от документации:
converters = {3: lambda s: float(s or 0)}
, и я действительно не могу сделать какой-либо смысл этого синтаксиса. Предполагая, что встроенные преобразователи могут обрабатывать мои данные, каков правильный синтаксис для записи параметра преобразователя для этого? Если конвертеры не могут делать то, что мне нужно, кто-нибудь знает, как читать эти данные? Я ожидал, что это будет очень просто, что я найду через 5 минут, но сейчас я потратил немного времени на это.
Может быть, вы должны рассмотреть вопрос о переименовании на ваш вопрос, потому что я думаю, что это больше о том, как читать ваш файл данных в NumPy массив, правильно? Поплавковые преобразователи - это всего лишь одна возможность. –