2016-02-19 1 views
4

J'ai un tableau numpy multidimensionnel que je veux diviser en fonction d'une colonne particulière.Tableaux multidimensionnels fractionnés numpy

Ex. [[1,0,2,3],[1,2,3,4],[2,3,4,5]] Dites que je veux diviser ce tableau par la 2ème colonne avec l'expression x <=2. Ensuite, je voudrais obtenir deux tableaux [[1,0,2,3],[1,2,3,4]] et . J'utilise actuellement cette déclaration, que je ne pense pas correcte.

splits = np.split(S, np.where(S[:, a] <= t)[0][:1]) #splits S based on t 

#a is the column number 
+1

Quoi de 'x <= 2'? Est-ce que 'x' est votre numéro de ligne? – orange

+0

C'est juste les valeurs dans une colonne particulière. – mrQWERTY

+1

Donc quand vous dites la 2ème colonne, vous voulez dire 1-based. '[1, 0, 2, 3], [1, 2, 3, 4]' restent ensemble parce que vous comparez 0 <= 2' et '2 <= 2'. '[2, 3, 4, 5]' est "divisé" parce que vous comparez 3 <= 2'. Correct? – orange

Répondre

4
>>> import numpy as np 
>>> a = np.asarray([[1,0,2,3],[1,2,3,4],[2,3,4,5]]) 
>>> a 
array([[1, 0, 2, 3], 
     [1, 2, 3, 4], 
     [2, 3, 4, 5]]) 
>>> split1 = a[a[:,1] <= 2, :] 
array([[1, 0, 2, 3], 
     [1, 2, 3, 4]]) 
>>> split2 = a[a[:,1] > 2, :] 
array([[2, 3, 4, 5]])