Python中嵌套循环的问题

Python中嵌套循环的问题,python,numpy,nested-loops,Python,Numpy,Nested Loops,我是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:

我是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
将numpy导入为np
作为pd进口熊猫
测试=np.ones((4,5))
test2=np.零((4,3))
i=0
j=0
而我<4:
而j<3:
test2[i][j]=test[i][j]
j+=1
i+=1

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

问题的关键是使用了错误的循环类型。您在使用
的同时
为执行
的工作时犯了一个非常常见的错误

i = 0
j = 0
while i < 6036:
    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]

请提供预期的(MRE)。我们应该能够复制和粘贴一个连续的代码块,执行该文件,并再现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和期望的输出来测试我们的建议。显示中间结果与您预期的不同之处。用硬编码的测试用例替换读取的文件;您发布的代码失败,因为我们无法读取您的文件。为什么您使用
while
循环而不是
for
?这只是需要跟踪的另一个项目。正如我所说,我对python非常陌生,所以我只做了最熟悉的事情。我只想复制元素,直到第50列,但我不知道如何限制使用for循环读取的列。有一个具体的示例非常有帮助—现有数据的一个微型版本。听起来您只需要
u
中的一部分数据,而不需要循环。这看起来有点像
u[:6036,0:50]
,但很难确定答案,因为我们看不到您的任何数据。这对numpy阵列不是很好的建议。你基本上是用嵌套循环来制作一个切片,而不是仅仅使用
u_50=u[:6036,:50]
,然后如果你需要拷贝,也许
copy()。我们试图解决OP的直接问题,而不是作为一个全方位的辅导服务。一次一(或两)步。。。OP仍然对基本循环感到困惑。非常感谢您的帮助,我将尝试在下次开始时提供一个最小的、可复制的示例。正如我所说的,我对Python非常陌生,但我想尝试一下,因为我听说过关于它的非常好的东西,所以任何额外的信息都会有所帮助。
for i in range(6036):
    for j in range(50):
        u_50[i][j] = u[i][j]