【问题标题】:Efficient splitting of data in Python在 Python 中高效地拆分数据
【发布时间】:2015-12-17 14:55:50
【问题描述】:

考虑下面的代码

one, two = sales.random_split(0.5, seed=0)
set_1, set_2 = one.random_split(0.5, seed=0)
set_3, set_4 = two.random_split(0.5, seed=0)

我在这段代码中试图将SalesSframe(类似于 Pandas DataFrame)中的数据随机分成大约 4 个相等的部分。

实现此目的的 Pythonic/高效方法是什么?

【问题讨论】:

  • 你能解释一下为什么这不是 Pythonic 或高效的吗?我可以看到的一个问题是创建了许多不是 2 的幂的折叠,但这听起来与您的要求不同。

标签: python pandas dataframe sframe


【解决方案1】:
np.random.seed(0)
np.random.shuffle(arr) # in-place
sets = np.array_split(arr, 4)

【讨论】:

  • 您能否分享一下您的 cmets 为何更有效?我还看到您正在使用NumPy,这意味着我需要将SFrame 转换为NumPy Array。不会因为转换而增加开销吗?
  • @KhurramMajeed:我没有测试过它是否比你的原始代码更快,但我认为这段代码是高效的和 NumPythonic。试一试,看看它是否加快了速度。如果没有,也许坚持你原来的。如果需要,我相信您可以在最后将sets 转换回Sframes
猜你喜欢
  • 2020-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 2018-10-10
  • 2020-03-23
  • 1970-01-01
相关资源
最近更新 更多