Mam tablicę (lub raczej pandas ramki), która ma kolumnę A
, wartości w tej kolumnach są liczbami całkowitymi (zakładajmy, że należą do zasięgu 1..10).
Teraz musiałbym wybrać wiersze w tej tablicy, które mają wartości A
{3, 6, 9}
(w tym przykładzie możliwe jest tylko operacje ==
, ale w prawdziwym życiu ten zestaw był o wiele dłużej .
Czy istnieje dowolna funkcja w każdej bibliotece ({x0}} i numpy
), która pozwala mi na szybki:
arr = pandas.DataFrame(...)
values = [3, 6, 9]
valid_indexes = magic_function(arr.A, values)
Lub w Numpy:
arr = np.ndarray(...)
values = [3, 6, 9]
valid_indexes = magic_function(arr[13, :], values)
Innymi słowy, szukam elementu mądry in
operatora.
2 odpowiedzi
Od Numpy można użyć funkcji numpy.in1d
:
import numpy as np
arr = np.array([5, 10, 13, 7, 2, 2, 4, 18, 9, 3, 1], dtype=np.int32)
values = np.array([10, 2, 9])
valid_indexes = np.in1d(arr, values)
http://docs.scipy.org/doc/numpy/reference/generated/numpy.in1d.html.
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.