针对以下问题的numpy数组迭代



我有3个numpy数组a,c和m,我想要一个循环,在每个循环中取a,c,m中的每个元素。例如,在第一次迭代中,它取4,3,6并执行z=(a*2+c)%m5次,然后在第二次迭代中取5,5,5并执行相同的表达式5次。我想要随机数生成。参见下面的代码

a = [[4, 5, 1], [4, 3, 1], [6, 7, 2]]
c = [[3, 5, 1], [4, 3, 1], [6, 7, 2]]
m = [[6, 5, 1], [4, 3, 1], [6, 7, 2]]
for i in range(0, 5):
z = (a * 2 + c) % m

我不知道你为什么要从这些矩阵中提取元素的原因,这是一个简单的解决方案:

for i in range(a.shape[1]):
for j in range(b.shape[0]):
print([a[i,j], b[i,j], c[i,j]])

如果你对用它们做高级运算感兴趣,比如矩阵乘法,…,我建议您使用Numpy提供的切片技术。

it = np.nditer(a, flags=['multi_index'])
for x in it:
print("%d%d%d "%(a[it.multi_index],c[it.multi_index],m[it.multi_index]))
for i, j, k in zip(a, c, m):
for l, n, o in zip(i, j, k):
for i in range(0,5)
z=(a*2+c)%m

最新更新