Ich versuche, die Teilmenge x des gegebenen NumPy Array aList solche zu bekommen, dass das erste Element jeder Zeile sein muß, in der Liste r.gemäß dem ersten Element jeder Zeile
>>> import numpy
>>> alist = numpy.array([(0, 2), (0, 4), (1, 3), (1, 4), (2, 1), (3, 1), (3, 2), (4, 1), (4, 3), (4, 2)])
>>> alist
array([[0, 2],
[0, 4],
[1, 3],
[1, 4],
[2, 1],
[3, 1],
[3, 2],
[4, 1],
[4, 3],
[4, 2]])
>>> r = [1,3]
>>> x = alist[where first element of each row is in r] #this i need to figure out.
>>> x
array([[1, 3],
[1, 4],
[3, 1],
[3, 2]])
eine einfache Möglichkeit (ohne Looping, wie ich eine große Datenmenge haben) dies in Python zu tun?
Ich verstehe nicht, warum Sie nicht loopen möchten? Wenn Sie das erste Mal finden, können Sie die Schleife unterbrechen, aber ich sehe keinen anderen Weg als das erste Element zu überprüfen, das zweite und so weiter, bis Sie es gefunden haben oder keine Daten mehr vorhanden sind. – Lex
@Lex native Python-Schleifen sind viel langsamer als gebaut - in numpy Methoden, die normalerweise kompilierten Code unter der Haube verwenden. –
Wenn Ihre Frage beantwortet wurde, können Sie eine der Lösungen akzeptieren. Lesen Sie mehr darüber hier - http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Divakar