Python 在计算中使用列和行值生成给定大小的方形Numpy数组

Python 在计算中使用列和行值生成给定大小的方形Numpy数组,python,arrays,numpy,Python,Arrays,Numpy,我有一个一维Yk值的数组,其中U=随机数[0,1],k=1,2,3..N的每个后续值。我需要构建一个大小为NxN的数组,该数组将填充不同的条件,这取决于行和列的索引。 如果数组单元的列和行的索引相等(i=m)2π+0.1*U_k,i=m,则数组单元由上限条件sin(i-k)*cos填充⁡π(i-k),i≠m、 否则,由较低的一个。 我没有处理数组的行和列参与填充这个数组的事实,所以我对实现感到困惑。我只需要一个填充的工作基础,所以一个有限的NxN数组对于4x4就足够了 为了简化任务,我得到了我

我有一个一维Yk值的数组,其中U=随机数[0,1],k=1,2,3..N的每个后续值。我需要构建一个大小为NxN的数组,该数组将填充不同的条件,这取决于行和列的索引。 如果数组单元的列和行的索引相等(i=m)2π+0.1*U_k,i=m,则数组单元由上限条件sin(i-k)*cos填充⁡π(i-k),i≠m、 否则,由较低的一个。 我没有处理数组的行和列参与填充这个数组的事实,所以我对实现感到困惑。我只需要一个填充的工作基础,所以一个有限的NxN数组对于4x4就足够了

为了简化任务,我得到了我需要得到的东西。然而,一些问题仍然存在

1:在[0,1]中应该有一个随机数数组的元素,而不是变量U,这个元素是U_k,其中k是它在一维数组中的索引。例如,在数组中U_k=[0.11,0.5,0.66]:U1=0.11,U2=0.5,U3=0.66

2:另外,我需要形成一个一维数组,而不是变量A的常量输出。 换言之,我在从先前设置的数组U_k输出值并将循环执行的结果打包到一维数组中时仍然存在问题

import numpy as np
import math 
i=0
k=1
N=5
U=10 
while k < N:

    while i < N:
        i= i+1
        k = k
        if i==k:
            A = 2* math.pi + 0.1 * U
        if i != k:
            A = math.sin(i-k)* math.cos(math.pi*(i-k))
        print(A)
    else:
        i= 1
        k= k+1
将numpy导入为np
输入数学
i=0
k=1
N=5
U=10
当k
我不确定您的工作,但您在标题中提出的问题有以下简单的解决方案:

np.fromfunction(lambda i, j: i + 10*j, (4, 4))
屈服

array([[ 0, 10, 20, 30],
       [ 1, 11, 21, 31],
       [ 2, 12, 22, 32],
       [ 3, 13, 23, 33]])
很明显,你可以用你的U_k/Sine东西代替我的回程线

请注意,您可以像这样使用纯python实现类似的功能

[[i + 10*j for j in range(n)] for i in range(n)]

但numpy的速度快了50倍。

欢迎光临,您到目前为止都做了哪些尝试?你能给我们看看你的代码吗?UK的定义是什么?数组的一个示例可以是useful@EitanRosati“你能给我们看看你的代码吗?”。。。是的,经过进一步的修补,我解决了一些问题,并且能够相对熟练地设置算法。我仍然有下面描述的未解决问题1和2。我已经列出了算法代码,以简化对剩余问题的理解。