【发布时间】:2016-01-18 21:28:29
【问题描述】:
我找到了许多方法来输入带有文本条目的 csv 文件作为 Python 中的数字数组,例如 this 和 this,但没有一种方法适合我,也没有一种方法适合我。我也无法在 the manual 中找到 numpy 或其他常用工具的答案,但也许它就在那里,我就是无法理解。
我在 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]]
因为根据文档将数字列中的字符串转换为 nan 是 genfromtxt 应该做的。 genfromtxt 也有一个 converters 参数,但我能找到的使用它的唯一示例来自文档:
converters = {3: lambda s: float(s or 0)}
我真的无法理解这种语法。假设内置转换器可以处理我的数据,那么为此编写转换器参数的正确语法是什么?如果转换器不能满足我的需求,有人知道如何读取这些数据吗?我原以为这会非常简单,我会在 5 分钟内找到,但我现在已经浪费了好几个小时了。
【问题讨论】:
-
也许,你应该考虑重命名你的问题,因为我认为它更多的是关于如何将你的数据文件读取到一个 numpy 数组,对吧?浮点转换器似乎只是一种可能性。