python - 使用带有多个分隔符的 numpy 数组导入

标签 python python-3.x numpy

我想知道如何导入带有多个分隔符的文件。

我有以下行:

"1,000";"2,000";"3,000"

如何使用 numpy 导入数据?

我有以下代码

data=numpy.loadtxt(filepath,delimiter=';')

如何传递“”的第二个分隔符

亲切的问候

最佳答案

pandas.read_csv可以读取这样的文件。它允许您控制分隔符和小数点字符。

这是我的文件delim.dat:

"1,000";"2,000";"3,000"
"5,000";"6,000";"7,000"
"8,000";"9,000";"9,100"
"9,250";"9,500";"9,990"

pandas.read_csv 中使用参数 delimiter=';'decimal=',':

In [11]: import pandas as pd

In [12]: df = pd.read_csv('delim.dat', sep=';', decimal=',', header=None)

In [13]: df
Out[13]: 
      0    1     2
0  1.00  2.0  3.00
1  5.00  6.0  7.00
2  8.00  9.0  9.10
3  9.25  9.5  9.99
<小时/>

您还可以使用numpy.genfromtxt ,但您必须使用 converters 参数将每个字段从 字节 转换为浮点。例如,

In [54]: def myconvert(s):
    ...:     return float(s.strip(b'"').replace(b',', b'.'))
    ...: 
    ...: 

In [55]: a = np.genfromtxt('delim.dat', delimiter=';', converters={k: myconvert for k in range(3)})

In [56]: a
Out[56]: 
array([[1.  , 2.  , 3.  ],
       [5.  , 6.  , 7.  ],
       [8.  , 9.  , 9.1 ],
       [9.25, 9.5 , 9.99]])

关于python - 使用带有多个分隔符的 numpy 数组导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53820836/

相关文章:

python - 对 API 调用的列表进行分块

Python - 使用 DOM 获取 HTML

python-3.x - 二值图像分类器总是预测一类

python - 使用不同文件中的函数

python - 错误或功能 : cloning a numpy array w/slicing

Python 3 不通过 stat 检测符号链接(symbolic link)

python - 如何为 Pandas DataFrame 指定输入数据类型

python - 通过 http header 等即时返回文本(在变量中)作为 .txt 文件

python - 使用 NumPy 平均符号标准化数据段的最快方法?

python - 如何将这段代码从 python 循环重写为 numpy 向量(为了性能)?