本文向你們介紹一下 NumPy 的常見字符串函數。html
如下函數用於對 dtype 爲 numpy.string_ 或 numpy.unicode_ 的數組執行向量化字符串操做。它們基於 Python 內置庫中的標準字符串函數。python
這些函數在字符數組類(numpy.char)中定義:api
函數 | 描述 |
---|---|
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() 函數依次對兩個數組的對應元素進行字符串鏈接。數組
這裏須要注意的是隻能鏈接兩個數組,而且兩個數組的元素個數必須相同。ide
實例:函數
import numpy as np
# 鏈接兩個字符串:print(np.char.add(['hello'], [' world']))
# 鏈接多個字符串print(np.char.add(['hello', 'hi'], [' world', ' Tracy']))
返回:['hello world']['hello world' 'hi Tracy']
將字符串或數組進行重複多重鏈接。學習
若是參數是數組的話,這個函數會對數組的每一個元素分別進行多重鏈接。google
實例:編碼
import numpy as np
# 多重鏈接print(np.char.multiply('hello ', 3))print(np.char.multiply(['hello', 'hi'], 3))
返回:hello hello hello ['hellohellohello' 'hihihi']
用於將字符串居中,並使用指定字符在左側和右側進行填充。三個參數分別是:字符串或數組,拼接後總字符串字符數,填充的字符。spa
這個函數感受用在打日誌的時候特別好。
實例:
import numpy as np
print(np.char.center('hello', 20, fillchar='*'))print(np.char.center(['hello', 'hi'], 19, fillchar='*'))
返回:*******hello********['*******hello*******' '*********hi********']
將字符串的第一個字母轉換爲大寫。
實例:
import numpy as np
print(np.char.capitalize('hello'))
返回:Hello
將字符串的每一個單詞的第一個字母轉換爲大寫。
這個函數是上面函數的升級版吧。
實例:
import numpy as np
print(np.char.title('i love china'))
返回:I Love China
將字符串或數組的每一個元素轉換爲小寫。
實例:
import numpy as np
# 操做字符串print(np.char.lower('GOOGLE'))
# 操做數組print(np.char.lower(['I', 'LOVE', 'CHINA']))
返回:google['i' 'love' 'china']
將字符串或數組的每一個元素轉換爲大寫。
和上一個函數做用相反。
實例:
import numpy as np
# 操做字符串print(np.char.upper('google'))
# 操做數組print(np.char.upper(['', 'love', 'china']))
返回:GOOGLE['' 'LOVE' 'CHINA']
經過指定分隔符對字符串進行分割,並返回數組。分隔符默認爲空格。
實例:
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']
用換行符做爲分隔符來分割字符串,並返回數組。
這裏的換行符能夠是\r
,\n
,\r\n
。
實例:
import numpy as np
# 換行符 \rprint(np.char.splitlines('I\rLove China'))# 換行符 \nprint(np.char.splitlines('I\nLove China'))# 換行符 \r\nprint(np.char.splitlines('I\r\nLove China'))
返回:['I', 'Love China']['I', 'Love China']['I', 'Love China']
將字符串裏面的
\t
轉換成 N 個tab
。
實例:
import numpy as np
# 將 \t 轉成3個tabprint(np.char.expandtabs('i\tlove\tchina', 3))
返回:i love china
移除開頭或結尾處的特定字符。
實例:
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']
去除字符串左邊的空格。
實例:
import numpy as np
# 去除左邊的空格print(np.char.lstrip(' china '))
返回:china
去除字符串右邊的空格。
實例:
import numpy as np
# 去除右邊的空格print(np.char.rstrip(' china '))
返回: china
經過指定分隔符來鏈接數組中的元素或字符串。
能夠指定多個分隔符分隔數組中對應的元素。
實例:
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']
經過指定字符來分隔數組中的元素或字符串。
經過指定的字符將字符串分割成指定字符前面的字符,指定的字符串和指定字符後面的字符三個部分。
實例:
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']]
使用新字符串替換字符串中的全部子字符串。
實例:
import numpy as np
# 替換字符串print(np.char.replace('i love china', 'ov', 'ik'))
返回:i like china
對數組中的每一個元素進行編碼操做。默認編碼是 utf-8,能夠使用標準 Python 庫中的編解碼器。
實例:
import numpy as np
# 編碼print(np.char.encode('中國', 'utf-8'))
返回:b'\xe4\xb8\xad\xe5\x9b\xbd'
對數組中的每一個元素進行解碼操做。
實例:
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