【发布时间】:2017-06-09 13:15:46
【问题描述】:
我有四个维度为 3Nx3N 的方阵,分别称为 A、B、C 和 D。
我想将它们组合成一个矩阵。 for 循环的代码如下:
import numpy
N = 3
A = numpy.random.random((3*N, 3*N))
B = numpy.random.random((3*N, 3*N))
C = numpy.random.random((3*N, 3*N))
D = numpy.random.random((3*N, 3*N))
final = numpy.zeros((6*N, 6*N))
for i in range(N):
for j in range(N):
for k in range(3):
for l in range(3):
final[6*i + k][6*j + l] = A[3*i+k][3*j+l]
final[6*i + k + 3][6*j + l + 3] = B[3*i+k][3*j+l]
final[6*i + k + 3][6*j + l] = C[3*i+k][3*j+l]
final[6*i + k][6*j + l + 3] = D[3*i+k][3*j+l]
是否可以用numpythonic的方式编写前面的for循环?
【问题讨论】:
-
(离题)|我在想自己,我唯一一次听到有人说“numpythonic”是SO上的其他人。但后来我查了一下,你也是 :)
-
@Mitch 几乎是一种补品。
-
是的,我正在以 Numpythonic 的方式使用不同的方式来制作 for 循环。眼睛是错误的,应该是零。
-
@Guillaume Jacquenot N 不是 3,是任何数字!但现在我明白了,只是做一个可执行代码!酷
标签: python numpy matrix optimization vectorization