我正在尝试将长度为40的numpy.array分割成大小相等的小的numpy.array,小数组的数量由用户指定。在小数组之间允许有重叠,因为在一些情况下,只有通过小数组的重叠才能使整个长度被分成指定的份数。
例如,如果我有一个数组np.array([range(40)]),并且需要将其分成37个子数组,则子数组的列表应如下所示:
我试着使用
以下是使用
有什么解决办法吗?
例如,如果我有一个数组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
。 - Somthinarray_split
的文档说明它可以处理不均匀的分割;而split
则会抛出错误。 - Arya McCarthynumpy.array_split
的示例和期望输出。 - Somthin