Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 用循环填充数据数组的行和列_Arrays_Loops_Numpy_For Loop - Fatal编程技术网

Arrays 用循环填充数据数组的行和列

Arrays 用循环填充数据数组的行和列,arrays,loops,numpy,for-loop,Arrays,Loops,Numpy,For Loop,我从Python开始,我有一个关于“for”循环的基本问题 我有两个数组,其中包含相同变量的值: A = data_lac[:,0] 在第一个数组中,我有面积值,在第二个数组中,我有平均深度值。 我想找到一种方法,用不同的参数值自动计算。方程式如下: g= (np.sqrt(A/pi))/n 这里我可以计算每一行的“g”。现在我想要一个不同值为“n”的循环。我这样做: i=0 while i <= len(A)-1: for n in ran

我从Python开始,我有一个关于“for”循环的基本问题 我有两个数组,其中包含相同变量的值:

    A = data_lac[:,0]
在第一个数组中,我有面积值,在第二个数组中,我有平均深度值。 我想找到一种方法,用不同的参数值自动计算。方程式如下:

    g= (np.sqrt(A/pi))/n
这里我可以计算每一行的“g”。现在我想要一个不同值为“n”的循环。我这样做:

    i=0
    while i <= len(A)-1:
      for n in range(2,6):
        g[i] = (np.sqrt(A[i]/pi))/n
        i += 1
    break
g有5列,每列用不同的“n”计算

任何提示都会非常有用, 谢谢

更新守则:

    data_lac=np.zeros((106,7))
    data_lac[:,0:2]=np.loadtxt("/home...", delimiter=';', skiprows=1, usecols=(0,1))
    data_lac[:,1]=data_lac[:,1]*0.001

    #Initialisation
    A = data_lac[:,0]
    #example for A with 4 elements
    A=[2.1, 32.0, 4.6, 25]

    g = np.zeros((len(A),))

我相信您在两个循环中共享索引。在内部for循环(索引为n)中增加i(上部while循环的索引)

我猜你有一个(1维数组),你想产生一个大小为(Len(A,5))的G(2维数组)

我不确定我是否完全理解您的需求输出,但我相信您希望:

i=0
while i <= len(A)-1:
  for n in range(2,6):
    g[i][n-2] = (np.sqrt(A[i]/pi))/n    # n-2 is to get first index as 0 and last as 4
  i += 1     # notice the increace of the i is for the upper while loop
break

您定义它的方式(没有4)导致它是1-dim数组而不是2-dim

请注意,如果A的长度为2(示例),您将尝试访问for循环中的[4]->这会导致错误-发生这种情况是因为您在for循环中增加了i,而忽略了在while循环上部进行的检查如果我很了解您,这两个循环之间存在冲突,因为我没有检查“while”循环的条件?这就是为什么在数组中会越界。你希望G是2维阵列,并且具有(len(A),5)维吗?好的,我明白了!是的,准确地说,对于每个不同的n个行号对应的行的帮助,您的猜测是正确的,我想根据“n”计算不同的G值。我尝试了您的解决方案,但仍有一个错误:“numpy.float64”对象不支持项分配。可能这与数组g有关,数组g可能是这样写的:g[[i],[n-2]]?我对python不太熟悉,但您是如何定义g的?它应该是这样的:G=[[0代表范围内的x(len(A))]代表范围内的y(2,6)],我也会这么说。我把G定义为2D数组,你们可以用更多的代码更新这个问题吗(包括G定义和数组内容的示例)->我写的脚本运行得很好更新答案-用4英寸G的定义,我可以用你们的示例输入
i=0
while i <= len(A)-1:
  for n in range(2,6):
    g[i][n-2] = (np.sqrt(A[i]/pi))/n    # n-2 is to get first index as 0 and last as 4
  i += 1     # notice the increace of the i is for the upper while loop
break
g = np.zeros((len(A),4), dtype=float)