import numpy as np
arr = np.array(["python", "NumPy", "data", "Science"])
print(arr)['python' 'NumPy' 'data' 'Science']
W NumPy poza dobrze znanymi tablicami liczbowymi, istnieje również zestaw funkcji pozwalających na wektorowe operacje na ciągach znaków.
Ważne: Poniższe funkcje są zazwyczaj dostępne w module numpy.char. W dokumentacji znajdują się one w sekcji String operations, jednak w tym materiale skupimy się na tym, jak można je wykorzystywać, zakładając interfejs z modułu numpy.strings. Jest to analogiczne do korzystania z numpy.char. Jest no nowsze podejście.
NumPy pozwala na przechowywanie tekstu w tablicach, np. tak:
import numpy as np
arr = np.array(["python", "NumPy", "data", "Science"])
print(arr)['python' 'NumPy' 'data' 'Science']
Poniżej przedstawiono popularne funkcje do modyfikacji tekstu na tablicach stringów:
numpy.strings.upper i numpy.strings.lowerupper: Zamiana wszystkich liter na wielkie.lower: Zamiana wszystkich liter na małe.import numpy as np
arr = np.array(["python", "NumPy", "data", "Science"])
print(np.strings.upper(arr))
print(np.strings.lower(arr))['PYTHON' 'NUMPY' 'DATA' 'SCIENCE']
['python' 'numpy' 'data' 'science']
numpy.strings.capitalizeFunkcja capitalize zamienia pierwszą literę wyrazu na wielką, a pozostałe na małe.
import numpy as np
arr = np.array(["python", "NumPy", "data", "Science"])
print(np.strings.capitalize(arr))['Python' 'Numpy' 'Data' 'Science']
numpy.strings.titleFunkcja title sprawia, że każda część składowa tekstu (np. oddzielona spacją) zostaje zamieniona tak, by zaczynała się od wielkiej litery.
import numpy as np
arr2 = np.array(["python data science", "machine learning", "deep learning"])
print(np.strings.title(arr2))['Python Data Science' 'Machine Learning' 'Deep Learning']
numpy.strings.addFunkcja add łączy elementy tablic tekstowych, działając podobnie jak operator + na stringach, ale wektorowo.
import numpy as np
arr_a = np.array(["Hello", "Data"])
arr_b = np.array(["World", "Science"])
print(np.strings.add(arr_a, arr_b))['HelloWorld' 'DataScience']
numpy.strings.joinFunkcja join pozwala na łączenie elementów tablicy przy użyciu wskazanego separatora.
import numpy as np
arr3 = np.array(["python", "numpy", "string"])
print(np.char.join("-", arr3))['p-y-t-h-o-n' 'n-u-m-p-y' 's-t-r-i-n-g']
Uwaga:
joinwektoryzuje operację, traktując każdy element tablicy jako sekwencję znaków do połączenia separatorem.
numpy.strings.splitPozwala na rozdzielanie stringów według podanego separatora. Zwraca tablicę zawierającą listy podłańcuchów.
import numpy as np
arr4 = np.array(["python-data-science", "machine-learning"])
print(np.char.split(arr4, sep="-"))[list(['python', 'data', 'science']) list(['machine', 'learning'])]
numpy.strings.find i numpy.strings.rfindfind: Zwraca indeks pierwszego wystąpienia podłańcucha (lub -1, jeśli nie znaleziono).rfind: Zwraca indeks ostatniego wystąpienia podłańcucha (lub -1, jeśli nie znaleziono).import numpy as np
arr5 = np.array(["python", "data", "numpy"])
print(np.strings.find(arr5, "a"))[-1 1 -1]
numpy.strings.replacereplace zamienia wszystkie wystąpienia podłańcucha na nowy ciąg znaków.
import numpy as np
arr6 = np.array(["python", "pydata", "pypy"])
print(np.strings.replace(arr6, "py", "PY"))['PYthon' 'PYdata' 'PYPY']
numpy.strings.strip, numpy.strings.lstrip i numpy.strings.rstripstrip: Usuwa wskazane znaki z początku i końca.lstrip: Usuwa wskazane znaki z lewej strony (początku).rstrip: Usuwa wskazane znaki z prawej strony (końca).import numpy as np
arr7 = np.array([" python ", " numpy "])
print(np.strings.strip(arr7))['python' 'numpy']
Możemy również podać niestandardowe znaki do usunięcia:
import numpy as np
arr8 = np.array(["###data###", "***science***"])
print(np.strings.strip(arr8, "#*"))['data' 'science']