第 83 天:NumPy 字符串操做

圖片


本文向你們介紹一下 NumPy 的常見字符串函數。html

NumPy 字符串函數

如下函數用於對 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()

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']

numpy.char.multiply()

將字符串或數組進行重複多重鏈接。學習

若是參數是數組的話,這個函數會對數組的每一個元素分別進行多重鏈接。google

實例:編碼

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()

用於將字符串居中,並使用指定字符在左側和右側進行填充。三個參數分別是:字符串或數組,拼接後總字符串字符數,填充的字符。spa

這個函數感受用在打日誌的時候特別好。

實例:

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
# 換行符 \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']

numpy.char.expandtabs()

將字符串裏面的 \t 轉換成 N 個tab

實例:

import numpy as np
# 將 \t 轉成3個tabprint(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

系列文章
第 82 天:Python Web 開發之 JWT 簡介 第 81 天:NumPy Ndarray 對象及數據類型 從 0 學習 Python 0 - 80 大合集總結
相關文章
相關標籤/搜索