【问题标题】:Print certain number of rows of a multidimensional array at a time一次打印一定数量的多维数组行
【发布时间】:2020-03-12 13:05:10
【问题描述】:

我有两个维度为x.shape=(1000000, 2000)y.shape=(1000000, 200) 的数组。我想遍历所有列并打印维度为(800, 2000)(1600, 2000)、...等的数组,一次增加800行。我将如何解决这个问题?

我一直在尝试以下方法:

counter = 0
increment = 800

for i in range(counter+increment):
    x[i, :]
    y[i, :]
    if len(x)==counter && len(x)<10000000:
        print(x, y)
        counter = counter + increment

但我没有得到我想要的结果

【问题讨论】:

  • 我不确定您在寻找什么。具体来说,你为什么提到y
  • x[i,:] 本身在一行上不会做任何事情。它不会改变x。您是否在交互式会话中尝试过小数组?

标签: python numpy for-loop increment


【解决方案1】:

不是 100% 确定我是否理解您想要实现的目标,但也许这会有所帮助?范围有一个步长,这可能会达到您正在寻找的技巧。此外,您需要将数组从 0 切片到您的计数器。

for i in range(0, x.shape[0], 8000):
    print(x[:i, :], y[:i, :])

【讨论】:

  • 你肯定需要在每个切片中都有一个起始索引
  • 你为什么这么认为?在问题中,切片按增量增长。 OP从未要求继续“框架”。如果他需要,是的,开始索引是必要的,但他没有这么说。因此,如果问题得到改善,我的答案也需要改变。
  • 是的,不是最详细的问题,这就是为什么我开始说我不确定 :-) 但根据我的理解可能会被问到我试图给出一个提示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多