逐行读取文件并将每个文件保存在列表中相当于生成一个字符串列表:In [98]: txt='''0 1.2 2 3.1
...: 20 21.2 22 23
...: 30 31 32 33.01'''.splitlines()
In [99]: txt
Out[99]: ['0 1.2 2 3.1', '20 21.2 22 23', '30 31 32 33.01']
从中生成一个数组只会生成一个一维字符串数组。无法作为二维数值数组编制索引:
^{pr2}$
如果首先将行拆分为子字符串:In [101]: [line.split() for line in txt]
Out[101]:
[['0', '1.2', '2', '3.1'],
['20', '21.2', '22', '23'],
['30', '31', '32', '33.01']]
In [102]: np.array([line.split() for line in txt], dtype=float)
Out[102]:
array([[ 0. , 1.2 , 2. , 3.1 ],
[20. , 21.2 , 22. , 23. ],
[30. , 31. , 32. , 33.01]])
这是一个二维数组。在
我们可以从那个数组中选择一列。但请注意,结果是一个1d数组:In [104]: np.array([line.split()