by 閑歡
本文向大家介紹一下 NumPy 的常見字符串函數。
NumPy 字符串函數
以下函數用於對 dtype 為 numpy.string_ 或 numpy.unicode_ 的數組執行向量化字符串操作。 它們基於 Python 內置庫中的標准字符串函數。
這些函數在字符數組類(numpy.char)中定義:
函數 | 描述 |
---|---|
add() | 對兩個數組的逐個字符串元素進行連接 |
multiply() | 返回按元素多重連接后的字符串 |
center() | 居中字符串 |
capitalize() | 將字符串第一個字母轉換為大寫 |
title() | 將字符串的每個單詞的第一個字母轉換為大寫 |
lower() | 數組元素轉換為小寫 |
upper() | 數組元素轉換為大寫 |
split() | 指定分隔符對字符串進行分割,並返回數組列表 |
splitlines() | 返回元素中的行列表,以換行符分割 |
expandtabs() | 將字符串里面的 \t 轉換成 N 個 tab |
strip() | 移除元素開頭或者結尾處的特定字符 |
lstrip() | 去除字符串左邊的空格 |
rstrip() | 去除字符串右邊的空格 |
join() | 通過指定分隔符來連接數組中的元素 |
partition() | 通過制定字符來分隔字符串 |
replace() | 使用新字符串替換字符串中的所有子字符串 |
decode() | 數組元素依次調用 str.decode |
encode() | 數組元素依次調用 str.encode |
函數的實例說明
numpy.char.add()
numpy.char.add() 函數依次對兩個數組的對應元素進行字符串連接。
這里需要注意的是只能連接兩個數組,並且兩個數組的元素個數必須相同。
實例:
import numpy as np
# 連接兩個字符串:
print(np.char.add(['hello'], [' world']))
# 連接多個字符串
print(np.char.add(['hello', 'hi'], [' world', ' Tracy']))
返回:
['hello world']
['hello world' 'hi Tracy']
numpy.char.multiply()
將字符串或數組進行重復多重連接。
如果參數是數組的話,這個函數會對數組的每個元素分別進行多重連接。
實例:
import numpy as np
# 多重連接
print(np.char.multiply('hello ', 3))
print(np.char.multiply(['hello', 'hi'], 3))
返回:
hello hello hello
['hellohellohello' 'hihihi']
numpy.char.center()
用於將字符串居中,並使用指定字符在左側和右側進行填充。三個參數分別是:字符串或數組,拼接后總字符串字符數,填充的字符。
這個函數感覺用在打日志的時候特別好。
實例:
import numpy as np
print(np.char.center('hello', 20, fillchar='*'))
print(np.char.center(['hello', 'hi'], 19, fillchar='*'))
返回:
*******hello********
['*******hello*******' '*********hi********']
numpy.char.capitalize()
將字符串的第一個字母轉換為大寫。
實例:
import numpy as np
print(np.char.capitalize('hello'))
返回:
Hello
numpy.char.title()
將字符串的每個單詞的第一個字母轉換為大寫。
這個函數是上面函數的升級版吧。
實例:
import numpy as np
print(np.char.title('i love china'))
返回:
I Love China
numpy.char.lower()
將字符串或數組的每個元素轉換為小寫。
實例:
import numpy as np
# 操作字符串
print(np.char.lower('GOOGLE'))
# 操作數組
print(np.char.lower(['I', 'LOVE', 'CHINA']))
返回:
google
['i' 'love' 'china']
numpy.char.upper()
將字符串或數組的每個元素轉換為大寫。
和上一個函數作用相反。
實例:
import numpy as np
# 操作字符串
print(np.char.upper('google'))
# 操作數組
print(np.char.upper(['', 'love', 'china']))
返回:
GOOGLE
['' 'LOVE' 'CHINA']
numpy.char.split()
通過指定分隔符對字符串進行分割,並返回數組。分隔符默認為空格。
實例:
import numpy as np
# 分隔符默認為空格
print(np.char.split('do you love china?'))
# 分隔符為 ,
print(np.char.split('yes,i do', sep=','))
返回:
['do', 'you', 'love', 'china?']
['yes', 'i do']
numpy.char.splitlines()
用換行符作為分隔符來分割字符串,並返回數組。
這里的換行符可以是\r
,\n
,\r\n
。
實例:
import numpy as np
# 換行符 \r
print(np.char.splitlines('I\rLove China'))
# 換行符 \n
print(np.char.splitlines('I\nLove China'))
# 換行符 \r\n
print(np.char.splitlines('I\r\nLove China'))
返回:
['I', 'Love China']
['I', 'Love China']
['I', 'Love China']
numpy.char.expandtabs()
將字符串里面的
\t
轉換成 N 個tab
。
實例:
import numpy as np
# 將 \t 轉成3個tab
print(np.char.expandtabs('i\tlove\tchina', 3))
返回:
i love china
numpy.char.strip()
移除開頭或結尾處的特定字符。
實例:
import numpy as np
# 移除字符串頭尾的 a 字符
print(np.char.strip('it love china', 'i'))
# 移除數組元素頭尾的 a 字符
print(np.char.strip(['it', 'love', 'china'], 'i'))
返回:
t love china
['t' 'love' 'china']
numpy.char.lstrip()
去除字符串左邊的空格。
實例:
import numpy as np
# 去除左邊的空格
print(np.char.lstrip(' china '))
返回:
china
numpy.char.rstrip()
去除字符串右邊的空格。
實例:
import numpy as np
# 去除右邊的空格
print(np.char.rstrip(' china '))
返回:
china
numpy.char.join()
通過指定分隔符來連接數組中的元素或字符串。
可以指定多個分隔符分隔數組中對應的元素。
實例:
import numpy as np
# 操作字符串
print(np.char.join(':', 'china'))
# 操作數組
print(np.char.join(':', ['china', 'american']))
# 指定多個分隔符操作數組元素
print(np.char.join([':', '-'], ['china', 'american']))
返回:
c:h:i:n:a
['c:h:i:n:a' 'a:m:e:r:i:c:a:n']
['c:h:i:n:a' 'a-m-e-r-i-c-a-n']
numpy.char.join()
通過指定字符來分隔數組中的元素或字符串。
通過指定的字符將字符串分割成指定字符前面的字符,指定的字符串和指定字符后面的字符三個部分。
實例:
import numpy as np
# 操作字符串
print(np.char.partition('china', 'i'))
# 操作數組
print(np.char.partition(['china', 'like'], 'i'))
返回:
['ch' 'i' 'na']
[['ch' 'i' 'na']
['l' 'i' 'ke']]
numpy.char.replace()
使用新字符串替換字符串中的所有子字符串。
實例:
import numpy as np
# 替換字符串
print(np.char.replace('i love china', 'ov', 'ik'))
返回:
i like china
numpy.char.encode()
對數組中的每個元素進行編碼操作。默認編碼是 utf-8,可以使用標准 Python 庫中的編解碼器。
實例:
import numpy as np
# 編碼
print(np.char.encode('中國', 'utf-8'))
返回:
b'\xe4\xb8\xad\xe5\x9b\xbd'
numpy.char.decode()
對數組中的每個元素進行解碼操作。
實例:
import numpy as np
a = np.char.encode('中國', 'utf-8')
print(a)
# 解碼
print(np.char.decode(a, 'utf-8'))
返回:
b'\xe4\xb8\xad\xe5\x9b\xbd'
中國
總結
本文向大家介紹了 NumPy 的字符串函數,這些函數都可以用 python 的原生字符串的方法來完成,但是使用起來沒有這么簡潔方便。大家可以在不同的場景下根據需求使用本文的這些操作,讓代碼更簡潔,可讀性更好。
參考
https://numpy.org/devdocs/reference/routines.char.html
文中示例代碼:python-100-days
關注公眾號:python技術,回復"python"一起學習交流