filename = "C:\\Users\\blablabla.dat"
col_sep = "\t"
col_1 = []
with open(filename, 'r') as f:
for line in f:
if line[0] != "#":
col_1.append(float(line.split(col_sep)[4]))
with open("C:\\Users\\blablabla1.dat", "w") as f:
for val in col_1:
f.write("%f\n" % val)
与使用
np.transpose
(这是1D数据的no-op)不同,您只需在将维度转换为数组后添加一个维度:例如:
^{pr2}$还有其他几种改进代码的方法,但是这种更改应该可以解决问题。:)
例如,^{} 可用于以更直接的方式提取列:
file.write('\n'.join([str(_) for _ in col_1]) + '\n')
可能对你有用。在顺便说一下,
numpy.ndarray
对象不能直接写入文件,请尝试numpy.savetxt()
。在所以,您试图从一个文件中提取一列并将其保存到另一个文件中?在
这应该做到:
程序中名为
col_1
的list
没有附加方向,既不是水平的,也不是垂直的;它只是一个值的列表。您将使用特定列中的值填充它,逐行读取文件并手动解析。要将其保存为列,必须以相同的方式迭代它,并每行写入一个值。在另外,为了让大家明白到底发生了什么;}返回了该
np.transpose
对一维数据什么也没做,只需返回一个np.array
(向量),其中包含来自list
的数据。^上的{array
的可读字符串表示形式,并将其写入输出文件。在相关问题 更多 >
编程相关推荐