初始化一个 numpy 数组,其中填充了来自四个不同 N 长度 numpy 数组的 N 2x2 数组,以向量化矩阵乘法

问题描述 投票:0回答:0

我想从四个不同的已经初始化的一维数组初始化一个 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 中初始化矩阵并逐个完成矩阵乘法。当然有一些矢量化函数可以做到这一点。

请原谅我的错误格式,我从来没有真正发表过堆栈帖子。

numpy matrix vectorization numpy-ndarray
© www.soinside.com 2019 - 2024. All rights reserved.