我想将 csv 文件作为 numpy 数组加载。每行包含带空格的字符串字段。 我尝试使用 numpy 中可用的 loadtxt() 和 genfromtxt() 方法。默认情况下,两种方法都将空格视为分隔符,并将字符串中的每个单词分隔为单独的列。无论如何,是否可以使用 loadtxt() 或 genfromtxt() 加载此类数据,还是我必须为其编写自己的代码?
我的文件中的示例行:
826##25733##Emanuele Buratti## ##哺乳动物细胞表达
这里##是分隔符,空格表示缺失值。
最佳答案
我认为您的问题是默认注释字符 #
与您的分隔符冲突。我能够像这样加载您的数据:
>>> import numpy as np
>>> np.loadtxt('/tmp/sample.txt', dtype=str, delimiter='##', comments=None)
array(['826', '25733', 'Emanuele Buratti', ' ', 'Mammalian cell expression'],
dtype='|S25')
您可以看到数据类型已自动设置为最大长度字符串。如果麻烦的话可以使用dtype=object
。顺便说一句,由于您的数据不是数字,我可能会建议使用 csv 模块而不是 numpy 来完成这项工作。
关于python - 将带有空格的字符串加载为 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16661880/