numpy提供了三個方便的例程來將數組變成至少一維,二維或三維數組,例如,通過numpy.atleast_3d如何返回至少4D的數組:有效的方法來模擬numpy.atleast_4d
我需要一個維度的等價物:atleast_4d
。我可以想到使用嵌套if語句的各種方法,但我想知道是否有更有效和快速的方法返回有問題的數組。在你的回答中,如果可以的話,我會有興趣看到執行速度的估計值(O(n))。
numpy提供了三個方便的例程來將數組變成至少一維,二維或三維數組,例如,通過numpy.atleast_3d如何返回至少4D的數組:有效的方法來模擬numpy.atleast_4d
我需要一個維度的等價物:atleast_4d
。我可以想到使用嵌套if語句的各種方法,但我想知道是否有更有效和快速的方法返回有問題的數組。在你的回答中,如果可以的話,我會有興趣看到執行速度的估計值(O(n))。
爲什麼不可以僅僅是這麼簡單的東西:
def atleast_4d(x):
if x.ndim < 4:
y = expand_dims(np.atleast_3d(x), axis=3)
else
y = x
return y
即。如果維數小於4,則調用atleast_3d
並在末尾附加一個額外的維度,否則返回數組不變。
加入時,它應該在哪裏第四維度去?作爲另一個尾隨維度,還是另一個主要維度? – talonmies 2013-04-11 05:24:04
@talonmies優先追蹤 – DrSAR 2013-04-11 05:24:57
執行速度爲O(1),不管是哪種方法,都不是O(n)。 – seberg 2013-04-11 08:50:40