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]
我是 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]