我有一個函數foo
,它將一個NxM numpy數組作爲參數並返回一個標量值。我有一個AxNxM numpy的陣列data
,我想映射foo
在這給我的長度A的合成numpy的陣列二維numpy陣列的映射函數
Curently,我這樣做:
result = numpy.array([foo(x) for x in data])
它的工作原理,但似乎我並沒有利用numpy的魔法(和速度)。有沒有更好的辦法?
我看過numpy.vectorize
和numpy.apply_along_axis
,但都不適用於二維數組的功能。
編輯:我在24x24圖像補丁上做了推動迴歸,所以我的AxNxM就像1000x24x24。上面我所說的foo
將一個Haar-like特徵應用到補丁(所以,不是非常計算密集的)。
有可能是重新編碼'foo',以便它可以接受任意尺寸的numpy的陣列的方式,施加它的計算到最後兩個軸。但是我們必須看看'foo'是如何編碼以提出具體建議的。 – unutbu 2010-05-05 11:58:37
我已經添加了更多關於我的具體問題的細節。將數據保持原樣,重新編碼foo以獲得索引參數,然後將其矢量化並將其映射到arange(len(x))'上? – perimosocordiae 2010-05-05 19:57:55