Python 中的嵌套循环问题

Problems with nested loops in Python

我是 Python 的新手,想将其用于大学项目。我从 .csv 文件中读取数据,并对它们应用 SVD 算法。之后,我想根据项目说明将作为输出获得的数组调整为新数组。当我尝试将数据从一个数组复制到另一个数组时,问题就出现了。这是一些产生相同行为的代码。

import numpy as np
import pandas as pd

test = np.ones((4,5))
test2 = np.zeros((4,3))
i=0
j=0
while i < 4:
    while j < 3:
        test2[i][j] = test[i][j]
        j += 1
    i += 1

在嵌套循环之后,我希望在数组 test 和 test2 上看到相同的数据,但实际发生的是只有第一行被复制而其余的没有,我不知道为什么。

问题的症结在于使用了错误的循环类型。您犯了一个非常常见的错误,即使用 while 来完成 for.

的工作
i = 0
j = 0
while i < 6036:
    while j < 50:
        u_50[i][j] = u[i][j]
        j += 1
    i += 1

完成 i 循环的第一次迭代后,将 i 从 0 增加到 1,然后点击 while j 语句。但是,j 仍然是 50,因为你重置它失败了。您需要完全在 i 循环中的 j 控件:

i = 0
while i < 6036:
    j = 0
    while j < 50:
        u_50[i][j] = u[i][j]
        j += 1
    i += 1 

请重新查看您的教程资料并学习使用for,以免您重蹈覆辙。

for i in range(6036):
    for j in range(50):
        u_50[i][j] = u[i][j]