【发布时间】:2013-12-02 13:52:11
【问题描述】:
我有一个大小为 (2x3) 的 numpy 对象数组。让我们称之为M1。在M1 中有 6 个 numpy 数组。
M1 给定行中的数组形状相同,但与M1 的任何其他行中的数组形状不同。
也就是说,
M1 = [ [A1 B1 C1]
[D1 E1 F1] ]
A1,B1,C1,D1,E1,F1 是 2D numpy 数组。 A1、B1、C1的形状相同。 D1,E1,F1 的形状相同。 Shape of A1 != D1 等等。
我也有
M2 = [ [A2 B2 C2]
[D2 E2 F2] ]
现在我想要一个与 M1 形状相同的 numpy 数组 M3。
M3 = [ [A3 B3 C3]
[D3 E3 F3] ]
A3[0,0] = [A1[0,0] A2[0,0]]、A3[0,1] = [A1[0,1] A2[0,1]] 等等。 (M3的所有元素都会这样)
有没有不使用 for 循环的 Pythonic 方法?
另外,我想知道如果我希望 A3[0,0] 为:
A3[0,0] = [ [A1[0,0] A2[0,0]],
[B1[0,0] B2[0,0]] ]
【问题讨论】:
-
有什么告诉我你正在使用张量?
-
那么,
A3.ndim在第一种情况下是3,在第二种情况下是4?我认为您将无法使用object数组对此类事情进行矢量化 - 至少我不知道该怎么做:P -
当每个元素都包含来自M1 和 M2的对元素时,M3如何与M1具有相同的形状?你的问题对我来说并不完全清楚......
-
@usethedeathstar 类似但我试图使用 numpy 数组
-
给我们一个带有样本数据的迭代解决方案(
np.ones或np.zeros可以,因为我们只是担心组合形状)。这样就更容易提出改进建议。