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


文章目录


NumPy 系列文章:


专栏:


推荐学习资料与网站:


这里是一段物理防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 ITBOB。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/105350414
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

【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

这里是一段物理防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 ITBOB。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/105350414
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

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

这里是一段物理防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 ITBOB。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/105350414
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!