我有一个大数组"lines"第一列只是一个计数器,在数组中从1开始多次。所以我写了一个小循环来查找每次重新开始时的下标。
changes = []
for j in range(len(lines)):
print(j)
if lines[j,0] == 1 :
changes.append(j)
这告诉我每个索引的第一列再次从1开始。较小数组的长度是不同的。前5个是这样的:
[0,
3643,
6868,
8434,
14347, ...
我可以像这样写多行,每次第一列再次为1时,将大numpy数组分割成更小的数组,像这样:
line1 = lines[changes[0]:changes[1]]
因为在大数组中有17个小数组,所以我不想把这行写17次。有没有办法让这17个数组有不同的名字?使用循环?我假设它应该是这样的:
for i in range(len(lines)-1):
line_[i] = lines[changes[i]:changes[i+1]]
但I作为计数器不能在数组的名称中。我不知道该如何处理这件事。
使用numpy split,它会产生一个子数组列表:
result = np.split(lines, changes)