在Python中迭代Numpy数组行

3
我正在尝试在Python中迭代两个numpy数组的行,使用以下for循环:
for i, j in range(X.shape[0]), range(y.shape[0]):

但是我遇到了以下错误:
ValueError: too many values to unpack (expected 2)

我曾尝试通过创建记录每个数组中行数的列表,以便能够使用i的值迭代X并使用j的值迭代y。

请问有人能解释一下为什么这不起作用,并说明如何使其正常工作吗?谢谢!


1
“iterate over the rows of two numpy arrays” 是有歧义的。您是想在一个循环中同时迭代两个numpy数组的行,还是想为X的每一行迭代一次Y的每一行? - Garrett Gutierrez
1个回答

2

这不是您想要做的。

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

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

话虽如此,我强烈建议您把循环用作最后的选择。请尽可能对函数进行向量化处理。

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


谢谢你的帮助!现在一切都清楚了。我对向量化函数不是很熟悉,所以没有考虑过它,但我会在未来阅读相关资料并尝试使用。 - user9654649

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接