我非常新手Python编程,对于大多数专业人员来说,这可能看起来非常简单。我有一个文本文件,格式如下。我想将数字导入矩阵中。也就是说,我不想要空格(每行开头也有一个空格)和数据标签。
1 1 1 1 1 1 1 data_1
1 1 1 1 1 1 2 data_2
1 1 1 1 1 2 1 data_3
1 1 1 1 1 2 2 data_4
1 1 1 1 1 3 1 data_5
1 1 1 1 1 3 2 data_6
使用numpy.loadtxt
函数,默认情况下假定数据是由空格分隔的,并且使用一个参数usecols
指定在构建数组时要使用哪些字段:
In [1]: import numpy as np
In [2]: matrix = np.loadtxt('matrix.txt', usecols=range(7))
In [3]: print matrix
[[ 1. 1. 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1. 1. 2.]
[ 1. 1. 1. 1. 1. 2. 1.]
[ 1. 1. 1. 1. 1. 2. 2.]
[ 1. 1. 1. 1. 1. 3. 1.]
[ 1. 1. 1. 1. 1. 3. 2.]]
如果您希望矩阵元素为整数,请同时将 dtype=int
传递给 loadtxt
。
usecols
可以是任何序列,因此usecols=(0,1,2,3)
表示前4行,usecols=(1,2,3)
表示第2-4列等(请注意 Python 的从零开始的索引)。 - xnx