我想一次將函數應用於單維數組3個元素,併爲每個元素輸出一個元素。將函數一次應用到3個元素中novey
,比如我有13個元素的數組:
a = np.arange(13)**2
,我想申請一個功能,讓我們說np.std作爲一個例子。
下面是對應的列表理解:
[np.std(a[i:i+3]) for i in range(0, len(a),3)]
[1.6996731711975948,
6.5489609014628334,
11.440668201153674,
16.336734339790461,
0.0]
沒有人知道使用numpy的功能,更有效的方法?
跨越招數就是我一直在尋找,你就會有這種情況的一個例子?它看起來相當複雜,使用 – 2011-03-02 07:02:26
@Andrea Z:看到我的更新。 「as_strided」允許你做的是同時改變形狀和步幅,從而改變陣列的外觀尺寸。由於在這種情況下你不需要改變步幅或大小,它完全等同於使用'reshape'。請參閱http://stackoverflow.com/questions/4923617/efficient-numpy-2d-array-construction-from-1d-array發佈更多解釋。 – Paul 2011-03-02 08:04:13
,如果您要使用的函數沒有'axis ='參數,請使用[numpy.apply_along_axis](http://docs.scipy.org/doc/numpy/reference/generated/numpy.apply_along_axis.html ) – endolith 2012-11-29 03:55:34