将不同大小的数组组合成一个对象?

2024-09-27 17:45:46 发布

您现在位置:Python中文网/ 问答频道 /正文

在python3.7中,Numpy:我有许多不同大小的数组,例如(5,3),(3,3)和(3,2)数组。(背景:他们定义的矩阵将被依次乘以一个初始向量。)为了得到灵活的代码(例如在其中一个矩阵之间插入第四个矩阵非常容易),我想把它们全部存储在一个对象中。你知道吗

我试着简单地把它放到一个先前生成的零数组中,这个数组应该足够大,可以容纳所有的零数组,但这并没有像预期的那样起作用。代码如下。你知道吗

for i in range(CollectionSize-1):
        ArrayCollection[:, :, i] = Array(Lenght1[i], Lenght2[i])    

如果我运行这行代码,就会得到错误

ValueError: could not broadcast input array from shape (5,3) into shape (5,5)

我想要的是一个由这些数组组成的没有死点的对象(因此,如果我调用ArrayCollection[:, :, 0],那么当我调用ArrayCollection[:, :, 1]时,我想要一个不同大小的数组),但是我可以用零填充这些死点。你知道吗

我想答案很简单,如果是这样的话,请不要对我太苛刻,但我已经为此奋斗了太久。你知道吗

另外,如果有另一种方法来做我需要的事情,而不是把所有的东西都存储在一个对象中,我愿意接受建议。你知道吗


Tags: 对象代码innumpyfor定义range矩阵
1条回答
网友
1楼 · 发布于 2024-09-27 17:45:46

你想要这样的东西吗?(如果要将矩阵存储到列表中):

a = np.zeros((5, 3))
b = np.zeros((3, 3))
c = np.zeros((3, 2))
m_objects = []
m_objects.append(a.tolist())
m_objects.append(b.tolist())
m_objects.append(c.tolist())
#print matrices
for i in m_objects:
    print(np.matrix(i))
    print("  -")

输出:

[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]
  -
[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]
  -
[[0. 0.]
 [0. 0.]
 [0. 0.]]
  -

相关问题 更多 >

    热门问题