【问题标题】:Iterating over numpy array rows in python在python中迭代numpy数组行
【发布时间】:2018-09-26 13:04:24
【问题描述】:

我正在尝试使用以下 for 循环遍历 python 中两个 numpy 数组的行:

for i, j in range(X.shape[0]), range(y.shape[0]):

但我收到以下错误:

ValueError: too many values to unpack (expected 2)

我认为通过使用每个数组中的行数创建列表,我可以使用 i 的值遍历 X,并使用 j 的值遍历 y。

有人能解释一下为什么这不起作用,以及我怎样才能让它起作用吗?谢谢!

【问题讨论】:

  • “遍历两个 numpy 数组的行”是模棱两可的。您是想在一个循环中同时迭代两个 numpy 数组的行,还是想对 X 中的每一行在 Y 中的每一行迭代一次?

标签: python arrays numpy for-loop iteration


【解决方案1】:

这不是你想要做的。

要遍历 X 中的行和 Y 中的行,您应该使用嵌套循环:

for i in range(X.shape[0]):
    for j in range(Y.shape[0]):
        func(i, j)

话虽如此,我强烈建议您将循环作为最后的手段。尽可能尝试向量化函数。

如果您必须循环,则可以使用numba 来提高性能。

【讨论】:

  • 感谢您的帮助!现在一切都清楚了。我对向量化函数不是很熟悉,所以我没有考虑过,但我会阅读它并在未来尝试它。
猜你喜欢
  • 1970-01-01
  • 2021-06-02
  • 2011-12-28
  • 1970-01-01
  • 2020-10-06
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多