我想从四个不同的已经初始化的一维数组初始化一个 2x2 数组(矩阵)的 numpy 数组。矩阵数组将与类似生成的矩阵数组进行矩阵乘法。四个数组包含矩阵元素 1,1 、 1,2 、 2,1 和 2,2.
例如,
np.array([[M11_elements,M12_elements],[M21_elements,M22_elements]])
其中 len(Mij_elements) 都相等
输出
array([[[M11_elements[0], M12_elements[0]],
[M21_elements[0], M22_elements[0]]],
[[M11_elements[1], M12_elements[1]],
[M21_elements[1], M22_elements[1]]],
[[M11_elements[2], M12_elements[2]],
[M21_elements[2], M22_elements[2]]],
.
.
.
[[M11_elements[N], M12_elements[N]],
[M21_elements[N], M22_elements[N]]]])
举个例子,
np.array([[np.array([0,1,2]),np.array([2,3,3])],
[np.array([4,5,9]),np.array([6,7,1])]])
输出
array([[[0, 1, 2],
[2, 3, 3]],
[[4, 5, 9],
[6, 7, 1]]])
而我想要
np.array([[np.array([0,1,2]),np.array([2,3,3])],[np.array([4,5,9]),np.阵列([6,7,1])]])
输出
数组([[[0, 2], [4, 6]],
[[1, 3],
[5, 7]],
[[2, 3],
[9, 1]]])
这样一个类似初始化的数组可以按元素矩阵乘法。另一方面,如果有人对如何在不进行矢量化的情况下加快此过程有任何建议,我会很乐意倾听。我目前的方法是在 forloop 中初始化矩阵并逐个完成矩阵乘法。当然有一些矢量化函数可以做到这一点。
请原谅我的错误格式,我从来没有真正发表过堆栈帖子。