多维数组的迭代

时间:2019-10-11 11:42:17

标签: python arrays for-loop iteration

这是我在这里的第一个问题,我想这对您来说并不重要。我必须创建一个具有标准逻辑分布随机数的1000x10矩阵M1。然后,如果矩阵M1(i,j)的元素满足以下条件,我应该使用For循环将数字1-4分配给1000x10矩阵M2的元素M2(i,j):

  • 如果M1(i,j)小于-3,则M2(i,j)= 1
  • 如果M1(i,j)大于或等于-3并且m1小于0,则M2(i,j)= 2
  • 如果M1(i,j)大于或等于0 u m1小于3,则M2(i,j)= 3
  • 如果M1(i,j)大于或等于3,则M2(i,j)=4。

我想出了一个可行的解决方案,但这客观上很麻烦:

scale = 1 
mu = 0
M1 = np.random.logistic(mu, scale, (1000, 10))

def FUN(i):
    if i < -3:
        return 1
    else:
        if i < 0 and i >= -3:
            return 2
        else:
            if i < 3 and i >= 0:
                return 3
            else:
                if i >= 3:
                    return 4 

M2 = []
for j in M1:
    for i in j:
        M2.append(FUN(i))

M2 = np.reshape(M2, (1000, 10))

现在,我很确定有很多方法可以提高解决方案的效率。你会怎么做?预先感谢您的回答-可能还有您的解释!

0 个答案:

没有答案
相关问题