我試圖將長度爲40的numpy.array
拆分成更小的,相同大小的numpy.array
s,其中較小數組的數目由用戶給出。它允許在較小的陣列之間有一些重疊,因爲情況可能會發生在全長只能被小陣列的某種形式重疊的分割整除的情況下。拆分成相等大小的窗口陣列
如果我有一個數組np.array([range(40)])
我不得不把它分成37個個子陣列,子陣的名單應該是這樣的:
[1, 2, 3], [3, 4, 5], [5, 6, 7], ... [38, 39, 40]
我嘗試使用numpy.split
但是這隻能在長度可被大小整除,而numpy.array_split
會產生不均勻的大小。
例使用numpy.split
>> import numpy as np
>>> a = np.random.randint(6,size=(40))
>>> b = np.split(a,37)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/site-packages/numpy/lib/shape_base.py", line 508, in split
'array split does not result in an equal division')
ValueError: array split does not result in an equal division
而且隨着numpy.array_split
>>> a = np.random.randint(5,size=(40))
>>> b = np.array_split(a,37)
>>> print len(b)
37
>>> print b[0].shape
(2,)
>>> print b[3].shape
(1,)
>>> print b[5].shape
(1,)
>>> print b[6].shape
(1,)
>>> print b[30].shape
(1,)
>>>
numpy.array_split
不平分他們。
任何解決方案?
相反:這些功能你說他們不明白到底是什麼。向我們顯示你得到的輸出和你想要的輸出。 –
加給'numpy.split' – Somthin
'array_split'的文件說,它處理不均勻分裂的例子。 'split'旨在引發錯誤。 –