我想有一個numpy數組的另外兩個數組(每個都有不同的形狀)。據我所知,由於這個原因,在主陣列的定義中必須使用:dtype = object
。numpy.array與不同形狀的元素
例如,讓我們定義(在Python 2.7)我們的數組作爲
a0 = np.arange(2*2).reshape(2,2)
a1 = np.arange(3*3*2).reshape(3,3,2)
b = np.array([a0,a1], dtype = object)
這完美的作品:b[1]
是一樣的a1
。但是,如果我改變從(2,2)在a0
的尺寸(3,3),奇怪的事情發生:
a0 = np.arange(3*3).reshape(3,3)
a1 = np.arange(3*3*2).reshape(3,3,2)
b = np.array([a0,a1], dtype = object)
這次b[1]
和a1
是不相等的,他們甚至有不同的形狀。這種奇怪行爲的原因是什麼?
也許對我來說有一個完全不同的解決方案。但我不想使用列表或元組,因爲我想允許添加如b + b
。很明顯,我可以爲此目的寫自己的課,但有沒有更簡單的方法?
在你的例子中,不可能對整個數組''執行算術運算。例如,'x + x'將不起作用。 – cheyp 2014-10-20 10:57:08
是的,你可以!正如我所說的,你只需要填充0..4的所有元素(但只給出了前兩個例子)。 – mdurant 2014-10-20 14:17:08