【发布时间】:2017-10-05 07:28:54
【问题描述】:
我正在尝试使用 python 加载文件,但我不想一次加载所有文件。我有一个错误,我不知道如何解决它。
这是代码:
import numpy as np
from itertools import islice
with open('C:/Users/jack/Desktop/folder/a.txt') as f:
while True:
next_n_lines = np.loadtxt(islice(f, 2))
if (next_n_lines.any()==0):
break
a = next_n_lines[:, 0:2]
b = next_n_lines[:, 2:4]
print(a)
print(b)
这是输出:
[[ 1. 2.]
[ 2. 3.]]
[[ 3. 4.]
[ 4. 5.]]
[[ 3. 4.]
[ 4. 5.]]
[[ 5. 6.]
[ 6. 7.]]
[[ 5. 6.]
[ 6. 7.]]
[[ 7. 8.]
[ 8. 9.]]
Traceback (most recent call last):
File "C:\Users\jack\Desktop\folder\a.py", line 9, in <module>
a = next_n_lines[:, 0:2]
IndexError: too many indices for array
这是我正在加载的文件:
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8
6 7 8 9
7 8 9 10
【问题讨论】:
-
您到底在用
numpy做什么?您可以在没有它的情况下读取文件... -
你想如何加载你的文件?你能提供一些样本吗?
-
我想一次加载文件 n 行,所以我使用 islice 获取一定数量的行并使用 numpy 将这些信息放入数组中。
-
您是否有一个令人信服的理由来加载每个块的文件块,比如一个巨大的文件大小左右?因为您可以首先以与文件中相同的格式将所有数据加载到数组中,然后再尝试将数据格式化为所需的形状。我会假设它也会更有效率。
-
您在等待的确切输出是什么?