我有这段代码可行:
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.]]
提前致谢!
答案 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]
我希望这会有所帮助。