首页 > 解决方案 > 用不同的字符串分隔数组

问题描述

我有一个包含 3 列有用数据的文本文件,我希望能够使用 numpy 在 python 中提取这些数据。文件类型是 *.nc,不是netCDF4 文件类型。它是 CNC 机床的标准文件输出类型。就我而言,它是一种 CMM(坐标测量机)。格式是这样的:

X0.8523542Y0.0000000Z0.5312869

X、Y 和 Z 是机器上的坐标轴。我的问题是,我可以用多个分隔符分隔一个数组吗?在这种情况下:“X”、“Y”和“Z”。

标签: python-3.xnumpycsv

解决方案


你可以使用熊猫

import pandas as pd
from io import StringIO

#Create a mock file
ncfile = StringIO("""X0.8523542Y0.0000000Z0.5312869
X0.7523542Y1.0000000Z0.5312869
X0.6523542Y2.0000000Z0.5312869
X0.5523542Y3.0000000Z0.5312869""")

df  = pd.read_csv(ncfile,header=None)

#Use regex with split to define delimiters as X, Y, Z.
df_out = df[0].str.split(r'X|Y|Z', expand=True)

df_out.set_axis(['index','X','Y','Z'], axis=1, inplace=False)

输出:

  index          X          Y          Z
0        0.8523542  0.0000000  0.5312869
1        0.7523542  1.0000000  0.5312869
2        0.6523542  2.0000000  0.5312869
3        0.5523542  3.0000000  0.5312869

推荐阅读