import numpy as np
= np.array(["python", "NumPy", "data", "Science"])
arr 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
= np.array(["python", "NumPy", "data", "Science"])
arr print(arr)
['python' 'NumPy' 'data' 'Science']
Poniżej przedstawiono popularne funkcje do modyfikacji tekstu na tablicach stringów:
numpy.strings.upper
i numpy.strings.lower
upper
: Zamiana wszystkich liter na wielkie.lower
: Zamiana wszystkich liter na małe.import numpy as np
= np.array(["python", "NumPy", "data", "Science"])
arr
print(np.strings.upper(arr))
print(np.strings.lower(arr))
['PYTHON' 'NUMPY' 'DATA' 'SCIENCE']
['python' 'numpy' 'data' 'science']
numpy.strings.capitalize
Funkcja capitalize
zamienia pierwszą literę wyrazu na wielką, a pozostałe na małe.
import numpy as np
= np.array(["python", "NumPy", "data", "Science"])
arr print(np.strings.capitalize(arr))
['Python' 'Numpy' 'Data' 'Science']
numpy.strings.title
Funkcja 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
= np.array(["python data science", "machine learning", "deep learning"])
arr2 print(np.strings.title(arr2))
['Python Data Science' 'Machine Learning' 'Deep Learning']
numpy.strings.add
Funkcja add
łączy elementy tablic tekstowych, działając podobnie jak operator +
na stringach, ale wektorowo.
import numpy as np
= np.array(["Hello", "Data"])
arr_a = np.array(["World", "Science"])
arr_b
print(np.strings.add(arr_a, arr_b))
['HelloWorld' 'DataScience']
numpy.strings.join
Funkcja join
pozwala na łączenie elementów tablicy przy użyciu wskazanego separatora.
import numpy as np
= np.array(["python", "numpy", "string"])
arr3 print(np.char.join("-", arr3))
['p-y-t-h-o-n' 'n-u-m-p-y' 's-t-r-i-n-g']
Uwaga:
join
wektoryzuje operację, traktując każdy element tablicy jako sekwencję znaków do połączenia separatorem.
numpy.strings.split
Pozwala na rozdzielanie stringów według podanego separatora. Zwraca tablicę zawierającą listy podłańcuchów.
import numpy as np
= np.array(["python-data-science", "machine-learning"])
arr4 print(np.char.split(arr4, sep="-"))
[list(['python', 'data', 'science']) list(['machine', 'learning'])]
numpy.strings.find
i numpy.strings.rfind
find
: 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
= np.array(["python", "data", "numpy"])
arr5 print(np.strings.find(arr5, "a"))
[-1 1 -1]
numpy.strings.replace
replace
zamienia wszystkie wystąpienia podłańcucha na nowy ciąg znaków.
import numpy as np
= np.array(["python", "pydata", "pypy"])
arr6 print(np.strings.replace(arr6, "py", "PY"))
['PYthon' 'PYdata' 'PYPY']
numpy.strings.strip
, numpy.strings.lstrip
i numpy.strings.rstrip
strip
: 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
= np.array([" python ", " numpy "])
arr7 print(np.strings.strip(arr7))
['python' 'numpy']
Możemy również podać niestandardowe znaki do usunięcia:
import numpy as np
= np.array(["###data###", "***science***"])
arr8 print(np.strings.strip(arr8, "#*"))
['data' 'science']