为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

紫衣仙女 2021-11-23 16:24:39
我有一个大约 100,000 个数据点的数据集,我需要能够选择每组 10,000 个数据点并将它们附加到一个新列表中(所以我最终会得到一个数据点 0-10000 的数据集, 20,000-30,000、40,000-50,000 等)。我不能通过简单地对值本身进行阈值处理来分离数据,我需要通过索引进行分离。我想我需要编写一个循环,它可以按顺序选择前 10,000 个数据点,检查迭代次数是奇数还是偶数,如果是奇数,则追加到新列表中,然后重复循环,但由于下一个迭代是偶数,第二个 10,000 个数据点被忽略,依此类推直到结束。我理解逻辑并且对要做什么有一个模糊的想法,但我是一名化学家,而不是程序员,而且我不知道足够的 Python 语法,甚至无法开始使用谷歌搜索来尝试找出我需要的命令。我不知道如何连续调用每组一万个数据点,也不知道如何告诉 Python 计算迭代次数,更不用说忽略每一个!
查看完整描述

2 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

有使用列表推导等更复杂的方法来做到这一点,但这里有一种可能最容易理解的方法:


假设您的数据在一个数组中data。


import numpy as np


data = list(data)

data_subset = []

interval_length = 10,000

n_intervals = int(len(data)/interval_length)


# get every other data interval, starting with the first

for 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)


查看完整回答
反对 回复 2021-11-23
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

在较小的列表中尝试此操作,然后将其扩展到较大的列表如何?


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]]


查看完整回答
反对 回复 2021-11-23
  • 2 回答
  • 0 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信