# Python 数据分析三剑客之 NumPy（四）：字符串函数总结与对比

TRHX

2020-03-26

Python 数据分析 / NumPy

字数统计:

4,118字

阅读时长≈

18分

NumPy 系列文章：

- Python 数据分析三剑客之 NumPy（一）：理解 NumPy / 数组基础
- Python 数据分析三剑客之 NumPy（二）：数组索引 / 切片 / 广播 / 拼接 / 分割
- Python 数据分析三剑客之 NumPy（三）：数组的迭代与位运算
- Python 数据分析三剑客之 NumPy（四）：字符串函数总结与对比
- Python 数据分析三剑客之 NumPy（五）：数学 / 算术 / 统计 / 排序 / 条件 / 判断函数合集
- Python 数据分析三剑客之 NumPy（六）：矩阵 / 线性代数库与 IO 操作

专栏：

【NumPy 专栏】【Pandas 专栏】【Matplotlib 专栏】

推荐学习资料与网站：

【NumPy 中文网】【Pandas 中文网】【Matplotlib 中文网】【NumPy、Matplotlib、Pandas 速查表】

    1
    2
    3
    4
    5

    这里是一段防爬虫文本，请读者忽略。
    本文原创首发于 CSDN，作者 TRHX。
    博客首页：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 数组

应用举例：

    1
    2
    3
    4
    5

    >>> 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 数组

应用举例：

    1
    2
    3
    4
    5
    6

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

    1
    2
    3
    4
    5
    6
    7

    >>> 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 | 整数数组

应用举例：

    1
    2
    3

    >>> 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 数组。

应用举例：

    1
    2
    3
    4
    5

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

应用举例：

    1
    2
    3
    4
    5
    6
    7

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

应用举例：

    1
    2
    3
    4
    5

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

应用举例：

    1
    2
    3
    4
    5

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

应用举例：

    1
    2
    3
    4
    5

    >>> 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 数组，要使用的填充字符，默认为空格

应用举例：

    1
    2
    3
    4
    5
    6
    7

    >>> 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 数组，要使用的填充字符，默认为空格

应用举例：

    1
    2
    3

    >>> 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 数组，要使用的填充字符，默认为空格

应用举例：

    1
    2
    3

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

    1
    2
    3
    4
    5

    这里是一段防爬虫文本，请读者忽略。
    本文原创首发于 CSDN，作者 TRHX。
    博客首页：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 后整个字符串的宽度 如果宽度小于原字符串的宽度，则结果会去掉原字符串中多余的元素

应用举例：

    1
    2
    3
    4
    5

    >>> 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，则默认为删除空白

应用举例：

    1
    2
    3
    4
    5
    6

    >>> 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，则默认为删除空白

应用举例：

    1
    2
    3
    4
    5
    6

    >>> 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，则默认为删除空白

应用举例：

    1
    2
    3
    4
    5

    >>> 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 类型，返回三个元素：分割字符前的字符，分割字符，分割字符后的字符 如果元素包含多个分割字符，以最左边的为准，如果找不到分隔符，则返回三个元素：字符串本身以及两个空字符串

应用举例：

    1
    2
    3
    4
    5
    6
    7
    8
    9

    >>> 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 类型，返回三个元素：分割字符前的字符，分割字符，分割字符后的字符 如果元素包含多个分割字符，以最右边的为准，如果找不到分隔符，则返回三个元素：两个空字符串以及字符串本身

应用举例：

    1
    2
    3
    4
    5
    6
    7
    8

    >>> 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 次分割

应用举例：

    1
    2
    3
    4
    5
    6
    7
    8
    9

    >>> 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 次分割

应用举例：

    1
    2
    3

    >>> 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 个字符串

应用举例：

    1
    2
    3
    4
    5
    6
    7
    8
    9

    >>> 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，则换行符会包含在结果列表中，否则不包含

    1
    2
    3
    4
    5

    >>> 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 类型，字符串中要过滤的字符列表

应用举例：

    1
    2
    3
    4
    5
    6

    >>> 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 类型

应用举例：

    1
    2
    3
    4
    5
    6

    >>> 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 类型

应用举例：

    1
    2
    3
    4
    5
    6

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

    1
    2
    3
    4
    5

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

您的喜欢是作者写作最大的动力！❤️

- PayPal
- AliPay
- WeChatPay
- QQPay

Donate

最后更新于 2020年7月6日

NumPy

字符串函数

###### 上一页

#### Python 数据分析三剑客之 NumPy（五）：数学 / 算术 / 统计 / 排序 / 条件 / 判断函数合集

###### NumPy 数学函数 算术函数 统计函数 排序函数 条件函数 判断函数

###### 下一页

#### Python 数据分析三剑客之 NumPy（三）：数组的迭代与位运算

###### NumPy 迭代 位运算

#### 评论

## ๑۩ﺴ TRHX ﺴ۩๑

本文目录
欢迎光临

Hexo QQ 交流群 Telegram 交流群

CSDN 内容合伙人

文章分类

- BLOG
  (4)
- CDN
  (1)
- Hexo
  (9)
- Java
  (1)
- Linux
  (2)
- Markdown
  (2)
- Python 数据分析
  (27)
- Matplotlib
  (11)
- NumPy
  (6)
- Pandas
  (10)
- Python3 学习笔记
  (41)
- 基础学习
  (9)
- 学习经验
  (4)
- 爬虫学习
  (18)
- 爬虫实战
  (10)
- VPS
  (1)
- WEB前端
  (2)
- 图床
  (1)

热门标签
12306 3D图 58同城 Ajax BLOG Beautiful Soup CDN Coding Pages DataFrame Deepin Elicpse GitHub Pages Github Github Pages GroupBy HTTPS Hexo ICP备案 IO操作 Index JDBC JS 预加载 LaTeX Markdown Material X Matplotlib MongoDB MySQL NumPy PEP8 Pandas PicGo Pygame Python Redis SEO SQL Server 2012 SSR Selenium Series Ubuntu User-Agent VMware VPS XPath if语句 input()函数 instant.page jsDelivr lxml matplotibrc pyspider requests spfk urllib while循环 主题个性化 代理 位运算 公安备案 函数 函数应用 分割 切片 列表 判断函数 前程无忧 变量 合并数据集 哔哩哔哩 图例 图床 图形验证码 垃圾 备份 子图 字典 字符串函数 安居客 层级索引 年终总结 广播 异常 技巧 拼接 排序 排序函数 操作列表 散点图 数学函数 数据分裂 数据可视化 数据合并 数据替换 数据类型 数据读写 数据重塑 数组 文件 文件储存 无界面浏览器 时间序列 映射 条件函数 条形图 极区图 极坐标图 柱状图 模块 正则表达式 滑动验证码 点触验证码 爬虫 猫眼电影 瓜子二手车 画布 直方图 矩阵 等值线图 等高线图 算术函数 算术运算 类 索引 线性代数 线性图 统计函数 统计描述 统计计算 继承 编辑器 缺失值 网格 肺炎疫情 虎扑论坛 补丁 豆瓣电影 迭代 雷达图 饼状图
最近在听