Ich versuche, eine numpy.array
der Länge 40 in kleinere, gleich große numpy.array
s zu teilen, in denen die Anzahl der kleineren Arrays vom Benutzer angegeben wird. Es ist zulässig, eine gewisse Überlappung zwischen den kleineren Arrays zu haben, da Situationen auftreten können, bei denen die volle Länge nur durch die Teilungen teilbar ist, die durch eine Art von Überlappung der kleineren Arrays gegeben sind.Split-Array in gleich große Fenster
Wenn ich ein Array np.array([range(40)])
hatte, und ich hatte es in 37 Subarrays aufgeteilt, sollte die Liste der Sub-Arrays so aussehen:
[1, 2, 3], [3, 4, 5], [5, 6, 7], ... [38, 39, 40]
ich versucht, mit numpy.split
Das funktioniert aber nur, wenn die Länge durch die Größe teilbar, und numpy.array_split
erzeugt ungleichmäßige Größen.
Beispiel 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
Und mit 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
nicht gleichmäßig teilen sie mit.
Irgendeine Lösung?
Im Gegenteil: Diese Funktionen tun genau das, was Sie sagen, dass sie nicht tun. Zeigen Sie uns die Ausgabe, die Sie erhalten, und die gewünschte Ausgabe. –
hinzugefügt ein Beispiel gegeben 'numpy.split' – Somthin
' array_split's Dokumentation sagt, dass es ungleiche Aufteilungen handhabt; 'Split' wurde entwickelt, um einen Fehler zu erzeugen. –