Python 数据分析三剑客之 NumPy(四):NumPy 史上最全的字符串函数总结与对比

Alicia ·
更新时间:2024-09-20
· 663 次阅读

NumPy 系列文章(持续更新中):

Python 数据分析三剑客之 NumPy(一):理解 NumPy,数组基础 Python 数据分析三剑客之 NumPy(二):NumPy 数组索引、切片、广播、拼接、分割 Python 数据分析三剑客之 NumPy(三):万字文章详解 NumPy 数组的迭代与位运算 Python 数据分析三剑客之 NumPy(四):NumPy 史上最全的字符串函数总结与对比 文章目录【01】NumPy 字符串函数速查表【02】numpy.char.add()【03】numpy.char.join()【04】numpy.char.mod()【05】numpy.char.multiply()【06】numpy.char.capitalize()【07】numpy.char.title()【08】numpy.char.lower()【09】numpy.char.upper()【10】numpy.char.swapcase()【11】numpy.char.center()【12】numpy.char.ljust()【13】numpy.char.rjust()【14】numpy.char.zfill()【15】numpy.char.strip()【16】numpy.char.lstrip()【17】numpy.char.rstrip()【18】numpy.char.partition()【19】numpy.char.rpartition()【20】numpy.char.split()【21】numpy.char.rsplit()【22】numpy.char.replace()【23】numpy.char.splitlines()【24】numpy.char.translate()【25】numpy.char.encode()【26】numpy.char.decode() 【01】NumPy 字符串函数速查表

和 Python 一样,NumPy 也可以进行字符串相关操作。字符串函数在字符数组类(numpy.char)中定义。

NumPy 字符串函数速查表
函数 描述
add() 对两个数组的字符串元素进行连接
join() 通过指定分隔符来连接数组中的元素
mod() 格式化字符串,相当于 Python 字符串中的 % 和 format
multiply() 按照给定值返回元素多重连接后的字符串
capitalize() 将字符串(字符串可同时包含字母和数字,只要是连续的都会被视为一个同字符串)第一个字母转换为大写
title() 将单词(仅包含字母,若同时包含数字和字母,则数字之后元素被视为另一个单词)第一个字母转换为大写
lower() 将数组中所有的元素转换为小写
upper() 将数组中所有的元素转换为大写
swapcase() 将数组中每个元素字母大写转为小写,小写转为大写
center() 居中字符串,并使用指定字符在左右侧进行填充
ljust() 左对齐字符串,并使用指定字符在右侧进行填充
rjust() 右对齐字符串,并使用指定字符在左侧进行填充
zfill() 在数组元素的左边填充指定个数的数字 0
strip() 移除数组每个元素开头和者结尾处的特定字符
lstrip() 移除数组每个元素开头(最左边)的特定字符
rstrip() 移除数组每个元素结尾(最右边)的特定字符
partition() 指定分割符对字符串进行分割(从最左边的分割符开始分割,仅分割一次,返回三个元素)
rpartition() 指定分割符对字符串进行分割(从最右边的分割符开始分割,仅分割一次,返回三个元素)
split() 指定分割符对字符串进行分割(从最左边的分割符开始分割,可指定分割次数,返回多个元素)
rsplit() 指定分割符对字符串进行分割(从最右边的分割符开始分割,可指定分割次数,返回多个元素)
replace() 使用新字符串替换原字符串中的子字符串
splitlines() 以换行符作为分隔符来分割字符串
translate() 将数组元素字符串按照给定的转换表进行映射
encode() 编码操作,数组元素依次调用 str.encode
decode() 解码操作,数组元素依次调用 str.decode
【02】numpy.char.add()

numpy.char.add() 函数用于对两个数组的字符串元素进行连接。

基本语法:numpy.char.add(x1, x2),数组 x1 和 x2 必须具有相同的形状。

参数 描述
x1 要处理的 str 或 unicode 数组
x2 要处理的 str 或 unicode 数组

应用举例:

>>> import numpy as np >>> print(np.char.add(['hello'],[' world'])) ['hello world'] >>> print(np.char.add(['123', 'abc'], [' 456', ' def'])) ['123 456' 'abc def'] 【03】numpy.char.join()

numpy.char.join() 函数通过指定分隔符来连接数组中的元素。

基本语法:numpy.char.join(sep1, seq2)

参数 描述
seq1 分割符,str 或 unicode 数组
seq2 被分割的 str 或 unicode 数组

应用举例:

>>> import numpy as np >>> print(np.char.join('-', 'python')) p-y-t-h-o-n >>> >>> print(np.char.join(['+','-'],['python','java'])) ['p+y+t+h+o+n' 'j-a-v-a'] 【04】numpy.char.mod()

numpy.char.mod() 函数用于格式化字符串,相当于 Python 字符串中的 % 和 format。

基本语法:numpy.char.mod(value , a)

>>> import numpy as np >>> print(np.char.mod('value=%.2f', np.arange(6))) ['value=0.00' 'value=1.00' 'value=2.00' 'value=3.00' 'value=4.00' 'value=5.00'] >>> >>> print(np.char.mod('value=%.4f', [[1.1, 2, 3.021], [4.12, 5, 6.1]])) [['value=1.1000' 'value=2.0000' 'value=3.0210'] ['value=4.1200' 'value=5.0000' 'value=6.1000']] 【05】numpy.char.multiply()

numpy.char.multiply() 函数用于元素的多重连接,即返回 a*i

基本语法:numpy.char.multiply(a, i)

参数 描述
a 要处理的 str 或 unicode 数组
i 整数数组

应用举例:

>>> import numpy as np >>> print(np.char.multiply('Python ', 4)) Python Python Python Python 【06】numpy.char.capitalize()

numpy.char.capitalize() 函数将字符串第一个字母转换为大写。

基本语法:numpy.char.capitalize(a)

参数解释:a:要处理的 str 或 unicode 数组。

应用举例:

>>> import numpy as np >>> print(np.char.capitalize('python')) Python >>> print(np.char.capitalize(['a1b2','1b2a','b2a1','2a1b'])) ['A1b2' '1b2a' 'B2a1' '2a1b'] 【07】numpy.char.title()

numpy.char.title() 函数将数组元素字符串的每个单词的第一个字母转换为大写。注意:如果一个字符串中间有非字母,则非字母之后的字符串会被视为另一个单词。

基本语法:numpy.char.title(a)

应用举例:

>>> import numpy as np >>> print(np.char.title('i love python!')) I Love Python! >>> print(np.char.title('a1bc2def3h')) A1Bc2Def3H >>> print(np.char.title(['a1bc', 'a 1bc', 'a1 bc', 'a1b c'])) ['A1Bc' 'A 1Bc' 'A1 Bc' 'A1B C'] 【08】numpy.char.lower()

numpy.char.lower() 函数将数组中所有的元素转换为小写。

基本语法:numpy.char.lower(a)

应用举例:

>>> import numpy as np >>> print(np.char.lower('PYTHON')) python >>> print(np.char.lower(['PYTHON', 'A123C', 'Ba1A'])) ['python' 'a123c' 'ba1a'] 【09】numpy.char.upper()

numpy.char.upper() 函数将数组中所有的元素转换为大写。

基本语法:numpy.char.upper(a)

应用举例:

>>> import numpy as np >>> print(np.char.upper('python')) PYTHON >>> print(np.char.upper(['python', 'a123c', 'ba1A'])) ['PYTHON' 'A123C' 'BA1A'] 【10】numpy.char.swapcase()

numpy.char.swapcase() 函数将数组中每个元素字母大写转为小写,小写转为大写。

基本语法:numpy.char.swapcase(a)

应用举例:

>>> import numpy as np >>> print(np.char.swapcase('Abc123DEf456gHI')) aBC123deF456Ghi >>> print(np.char.swapcase(['Abc', '1De', '23F', 'Ghi'])) ['aBC' '1dE' '23f' 'gHI'] 【11】numpy.char.center()

numpy.char.center() 函数用于居中字符串,并使用指定字符在左右侧进行填充。

基本语法:numpy.char.center(a, width[, fillchar=' '])

参数 描述
a 要处理的 str 或 unicode 数组
width int 类型,结果字符串的总长度
fillchar 可选项,str 或 unicode 数组,要使用的填充字符,默认为空格

应用举例:

>>> import numpy as np >>> print(np.char.center('python', 10)) python >>> print(np.char.center('python', 12, fillchar='-')) ---python--- >>> print(np.char.center('python', 11, fillchar='-')) ---python-- 【12】numpy.char.ljust()

numpy.char.ljust() 函数用于左对齐字符串,并使用指定字符在右侧进行填充。

基本语法:numpy.char.ljust(a, width[, fillchar=' '])

参数 描述
a 要处理的 str 或 unicode 数组
width int 类型,结果字符串的总长度
fillchar 可选项,str 或 unicode 数组,要使用的填充字符,默认为空格

应用举例:

>>> import numpy as np >>> print(np.char.ljust('python', 10, fillchar='-')) python---- 【13】numpy.char.rjust()

numpy.char.ljust() 函数用于右对齐字符串,并使用指定字符在左侧进行填充。

基本语法:numpy.char.rjust(a, width[, fillchar=' '])

参数 描述
a 要处理的 str 或 unicode 数组
width int 类型,结果字符串的总长度
fillchar 可选项,str 或 unicode 数组,要使用的填充字符,默认为空格

应用举例:

>>> import numpy as np >>> print(np.char.rjust('python', 10, fillchar='-')) ----python 【14】numpy.char.zfill()

numpy.char.zfill() 函数在数组元素的左边填充指定个数的数字 0。

基本语法:numpy.char.zfill(a, width)

参数 描述
a 要处理的 str 或 unicode 数组
width int 类型,数组字符串在左边填充 0 后整个字符串的宽度
如果宽度小于原字符串的宽度,则结果会去掉原字符串中多余的元素

应用举例:

>>> import numpy as np >>> print(np.char.zfill('python', 3)) pyt >>> print(np.char.zfill('python', 10)) 0000python 【15】numpy.char.strip()

numpy.char.strip() 函数用于移除开头和结尾处的特定字符。

基本语法:numpy.char.strip(a[, chars=None])

参数 描述
a 要处理的 str 或 unicode 数组
chars 可选项,str 类型,指定要删除的字符集,如果省略或者为 None,则默认为删除空白

应用举例:

>>> import numpy as np >>> print(np.char.strip('alibaba','a')) libab >>> >>> print(np.char.strip(['Alibaba','admin','java', 'ABBA'],'a')) ['Alibab' 'dmin' 'jav' 'ABBA'] 【16】numpy.char.lstrip()

numpy.char.lstrip() 函数用于移除数组每个元素最右边的特定字符。

基本语法:numpy.char.lstrip(a[, chars=None])

参数 描述
a 要处理的 str 或 unicode 数组
chars 可选项,str 类型,指定要删除的字符集,如果省略或者为 None,则默认为删除空白

应用举例:

>>> import numpy as np >>> print(np.char.lstrip('alibaba','a')) libaba >>> >>> print(np.char.lstrip(['Alibaba','admin','java', 'aBBa'],'a')) ['Alibaba' 'dmin' 'java' 'BBa'] 【17】numpy.char.rstrip()

numpy.char.rstrip() 函数用于移除数组每个元素最右边的特定字符。

基本语法:numpy.char.rstrip(a[, chars=None])

参数 描述
a 要处理的 str 或 unicode 数组
chars 可选项,str 类型,指定要删除的字符集,如果省略或者为 None,则默认为删除空白

应用举例:

>>> import numpy as np >>> print(np.char.rstrip('alibaba','a')) alibab >>> print(np.char.rstrip(['Alibaba','admin','java', 'aBBa'],'a')) ['Alibab' 'admin' 'jav' 'aBB'] 【18】numpy.char.partition()

numpy.char.partition() 函数通过指定分割符对字符串进行分割,从最左边第一次出现的分割符开始分割,仅分割一次,返回三个元素。

基本语法:numpy.char.partition(a, sep)

参数 描述
a 要处理的 str 或 unicode 数组
sep 分割字符,str 或 unicode 类型,返回三个元素:分割字符前的字符,分割字符,分割字符后的字符
如果元素包含多个分割字符,以最左边的为准,如果找不到分隔符,则返回三个元素:字符串本身以及两个空字符串

应用举例:

>>> print(np.char.partition('111a222','a')) ['111' 'a' '222'] >>> print(np.char.partition('111a222a333','a')) ['111' 'a' '222a333'] >>> print(np.char.partition('111a222a333','b')) ['111a222a333' '' ''] >>> print(np.char.partition(['111a222', '23a45'],'a')) [['111' 'a' '222'] ['23' 'a' '45']] 【19】numpy.char.rpartition()

numpy.char.partition() 函数通过指定分割符对字符串进行分割,从最右边第一次出现的分割符开始分割,仅分割一次,返回三个元素。

基本语法:numpy.char.rpartition(a, sep)

参数 描述
a 要处理的 str 或 unicode 数组
sep 分割字符,str 或 unicode 类型,返回三个元素:分割字符前的字符,分割字符,分割字符后的字符
如果元素包含多个分割字符,以最右边的为准,如果找不到分隔符,则返回三个元素:两个空字符串以及字符串本身

应用举例:

>>> import numpy as np >>> print(np.char.rpartition('111a222a333','a')) ['111a222' 'a' '333'] >>> print(np.char.rpartition('111a222a333','b')) ['' '' '111a222a333'] >>> print(np.char.rpartition(['111a222a333', '23a45'],'a')) [['111a222' 'a' '333'] ['23' 'a' '45']] 【20】numpy.char.split()

numpy.char.split() 函数通过指定分割符对字符串进行分割,从最左边的分割符开始分割,可指定分割次数,返回多个元素。

基本语法:numpy.char.split(a[, sep=None, maxsplit=None])

参数 描述
a 要处理的 str 或 unicode 数组
sep 分隔符,可选项,str 或者 unicode 类型,如果 sep 未指定或者为 None,则默认为空格
maxsplit 可选项,int 类型,如果指定 maxsplit,则最多完成 maxsplit 次分割

应用举例:

>>> import numpy as np >>> print(np.char.split('I love python!')) ['I', 'love', 'python!'] >>> print(np.char.split('www.itrhx.com', sep='.')) ['www', 'itrhx', 'com'] >>> print(np.char.split('one.two.itrhx.com', sep='.', maxsplit=2)) ['one', 'two', 'itrhx.com'] >>> print(np.char.split('one.two.itrhx.com', '.', 2)) ['one', 'two', 'itrhx.com'] 【21】numpy.char.rsplit()

numpy.char.split() 函数通过指定分割符对字符串进行分割,从最右边的分割符开始分割,可指定分割次数,返回多个元素。

基本语法:numpy.char.rsplit(a[, sep=None, maxsplit=None])

参数 描述
a 要处理的 str 或 unicode 数组
sep 分隔符,可选项,str 或者 unicode 类型,如果 sep 未指定或者为 None,则默认为空格
maxsplit 可选项,int 类型,如果指定 maxsplit,则最多完成 maxsplit 次分割

应用举例:

>>> import numpy as np >>> print(np.char.rsplit('one.two.itrhx.com', '.', 2)) ['one.two', 'itrhx', 'com'] 【22】numpy.char.replace()

numpy.char.replace() 函数可以使用新字符串来替换原字符串中的子字符串。

基本语法:numpy.char.replace(a, old, new[, count=None])

参数 描述
a 要处理的 str 或 unicode 数组
old 旧的字符串,即要替换的字符串,str 或 unicode 类型
new 新的字符串,即替换的字符串,str 或 unicode 类型
count int 类型,如果指定该值 N,则会替换 old 中出现的前 N 个字符串

应用举例:

>>> import numpy as np >>> print(np.char.replace('i like python', 'python', 'java')) i like java >>> >>> print(np.char.replace('aaaaaaa', 'a', 'b', count=3)) bbbaaaa >>> >>> print(np.char.replace('a111a11a1a111aa', 'a', 'A', count=3)) A111A11A1a111aa 【23】numpy.char.splitlines()

numpy.char.splitlines() 函数以换行符作为分隔符来分割字符串,并返回数组。

基本语法:numpy.char.splitlines(a[, keepends=None])

参数 描述
a 要处理的 str 或 unicode 数组
keepends 如果指定 keepends 为 True,则换行符会包含在结果列表中,否则不包含
>>> import numpy as np >>> print(np.char.splitlines('hi python!\nhi java!')) ['hi python!', 'hi java!'] >>> print(np.char.splitlines('hi python!\nhi java!', keepends=True)) ['hi python!\n', 'hi java!'] 【24】numpy.char.translate()

numpy.char.translate() 函数将数组元素字符串按照给定的转换表进行映射。

基本语法:numpy.char.translate(a, table[, deletechars=None])

参数 描述
a 要处理的 str 或 unicode 数组
table 包含 256 个字符的映射表,映射表通过 str.maketrans() 方法转换而来
deletechars 可选项,str 类型,字符串中要过滤的字符列表

应用举例:

>>> import numpy as np >>> intab = 'abcdef' >>> outtab = '123456' >>> table = str.maketrans(intab, outtab) # 制作映射表 >>> print(np.char.translate('this is a translate example!', table)) this is 1 tr1nsl1t5 5x1mpl5! 【25】numpy.char.encode()

numpy.char.encode() 函数用于编码操作,数组元素依次调用 str.encode,可以使用 Python 标准库中的编解码器。

基本语法:numpy.char.encode(a[, encoding=None, errors=None])

参数 描述
a 要处理的 str 或 unicode 数组
encoding 编码名称,可选项,str 类型,默认编码为 utf-8
errors 指定如何处理编码错误,可选项,str 类型

应用举例:

>>> import numpy as np >>> print(np.char.encode('python', 'cp500')) b'\x97\xa8\xa3\x88\x96\x95' >>> >>> print(np.char.encode(['aAaAaA', ' aA ', 'abBABba'], 'cp037')) [b'\x81\xc1\x81\xc1\x81\xc1' b'@@\x81\xc1@@' b'\x81\x82\xc2\xc1\xc2\x82\x81'] 【26】numpy.char.decode()

numpy.char.decode() 函数用于解码操作,数组元素依次调用 str.decode,可以使用 Python 标准库中的编解码器。

基本语法:numpy.char.decode(a[, encoding=None, errors=None])

参数 描述
a 要处理的 str 或 unicode 数组
encoding 编码名称,可选项,str 类型,默认编码为 utf-8
errors 指定如何处理编码错误,可选项,str 类型

应用举例:

>>> import numpy as np >>> print(np.char.decode(b'\x97\xa8\xa3\x88\x96\x95', 'cp500')) python >>> >>> print(np.char.decode([b'\x81\xc1\x81\xc1\x81\xc1' b'@@\x81\xc1@@' b'\x81\x82\xc2\xc1\xc2\x82\x81'], 'cp500')) ['aAaAaA aA abBABba']
作者:TRHX • 鲍勃



字符串 函数 数据分析 字符串函数 Python 字符 NumPy 数据

需要 登录 后方可回复, 如果你还没有账号请 注册新账号