如何选择数组中的所有其他数据组?

我有一个大约 100,000 个数据点的数据集,我需要能够选择每组 10,000 个数据点并将它们附加到一个新列表中(所以我最终会得到一个数据点 0-10000 的数据集, 20,000-30,000、40,000-50,000 等)。我不能通过简单地对值本身进行阈值处理来分离数据,我需要通过索引进行分离。

我想我需要编写一个循环,它可以按顺序选择前 10,000 个数据点,检查迭代次数是奇数还是偶数,如果是奇数,则追加到新列表中,然后重复循环,但由于下一个迭代是偶数,第二个 10,000 个数据点被忽略,依此类推直到结束。我理解逻辑并且对要做什么有一个模糊的想法,但我是一名化学家,而不是程序员,而且我不知道足够的 Python 语法,甚至无法开始使用谷歌搜索来尝试找出我需要的命令。我不知道如何连续调用每组一万个数据点,也不知道如何告诉 Python 计算迭代次数,更不用说忽略每一个!


紫衣仙女
浏览 194回答 2
2回答

明月笑刀无情

有使用列表推导等更复杂的方法来做到这一点,但这里有一种可能最容易理解的方法:假设您的数据在一个数组中data。import numpy as npdata = list(data)data_subset = []interval_length = 10,000n_intervals = int(len(data)/interval_length)# get every other data interval, starting with the firstfor i in range(0, n_intervals, 2):  start_index = i * interval_length  stop_index = start_index + interval_length  data_subset += data[start_index:stop_index]data_subset = np.array(data_subset)print(data_subset)

白猪掌柜的

在较小的列表中尝试此操作,然后将其扩展到较大的列表如何?ls = [1,2,2,2,2,11,2,2,3,4,44,399,9,9,0]group_sizes = 3# getting groups of size 'group_sizes' and then choosing every other one ...groups = [ls[n:n+group_sizes] for n in range(0, len(ls), group_sizes) if n % 2 == 0]输出print groups# [[1, 2, 2], [2, 2, 3], [9, 9, 0]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python