如何正确使用numpy.loadtxt正确分隔数据?

时间:2016-11-27 17:24:49

标签: python-2.7

我有这段代码可行:

import sys
import numpy as np
file_path = sys.argv[1]
training_examples = np.loadtxt(file_path)
print(training_examples)

并输出一个包含空格和新行分隔的1/0序列的文本:

[[ 0.  1.  1.  1.]
 [ 1.  0.  0.  1.]
 [ 1.  1.  1.  1.]]

我想要实现的是将这些数据轻松分离为矩阵和向量,而向量将由最后的值构建,如下所示:

[1. 1. 1.]

并且该向量的相应矩阵将是:

[[ 0.  1.  1.]
 [ 1.  0.  0.]
 [ 1.  1.  1.]]

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果您知道文件中的列数,可以使用usecols函数中的loadtxt参数:

# Assuming you have 4 columns
matrix = np.loadtxt(file_path, usecols=(0,1,2))
vector = np.loadtxt(file_path, usecols=(3,))

但是如果您不知道列数,可以尝试导入整个文件,然后将数据切片为矩阵和向量:

# Get the whole file
data = np.loadtxt(file_path)

# Get the number of columns in the data
col_num = data.shape[1]

# Get the matrix
matrix = data[:,:(col_num-1)]

# Get the vector
vector = data[:,col_num-1]

我希望这会有所帮助。