NumPy - 字符串函数
NumPy 中的字符串函数设计用于操作字符串数组。它们是 NumPy char 模块的一部分,该模块提供了一组矢量化字符串操作,可以应用于字符串数组的每个元素。
NumPy 字符串函数的主要特性
以下是 NumPy 字符串函数的主要特性 −
- 逐元素操作: NumPy 字符串函数的核心优势在于它们能够独立地对数组的每个元素执行操作。这使得高效处理大型数据集成为可能。
- 矢量化: 通过使用 NumPy 库,操作被矢量化,即与传统的 Python 字符串处理方法相比性能得到提升。矢量化利用优化的 C 库进行计算,大幅减少执行时间。
- 与数组的兼容性: NumPy 字符串函数直接与字符串数组协作,使处理大量文本数据更加容易,而无需将它们转换为列表或其他格式。
字符串操作在数组上逐元素执行。它们特别适用于低级数据操作和高效计算。
字符串函数列表
以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作。这些函数基于 Python 内置库中的标准字符串函数。
| 序号 | 操作 & 描述 |
|---|---|
| 1 | numpy.char.add()
逐元素连接两个字符串数组。 |
| 2 | numpy.char.center()
将数组中的每个字符串在指定宽度内居中对齐,并用指定字符填充。 |
| 3 | numpy.char.capitalize()
将数组中每个字符串的首字符大写。 |
| 4 | numpy.char.decode()
使用指定的编码解码数组中的每个字符串。 |
| 5 | numpy.char.encode()
使用指定的编码对数组中的每个字符串进行编码。 |
| 6 | numpy.char.ljust
将数组中的每个字符串左对齐,并用指定字符填充。 |
| 7 | numpy.char.lower()
将数组中每个字符串的所有字符转换为小写。 |
| 8 | numpy.char.lstrip()
从数组中每个字符串的开头去除字符。 |
| 9 | numpy.char.mod()
使用指定值格式化字符串中的占位符。 |
| 10 | numpy.char.multiply()
将数组中的每个字符串重复指定次数。 |
| 11 | numpy.char.replace()
在每个字符串中将一个子字符串的出现替换为另一个子字符串。 |
| 12 | numpy.char.rjust()
将数组中的每个字符串右对齐,并用指定字符填充。 |
| 13 | numpy.char.rstrip()
从数组中每个字符串的结尾去除字符。 |
| 14 | numpy.char.strip()
从数组中每个字符串的开头和结尾去除字符。 |
| 15 | numpy.char.swapcase()
交换每个字符串中每个字符的大小写。 |
| 16 | numpy.char.title()
将数组中的每个字符串转换为标题大小写。 |
| 17 | numpy.char.translate()
根据翻译表转换每个字符串中的字符。 |
| 18 | numpy.char.upper()
将数组中每个字符串的所有字符转换为大写。 |
| 19 | numpy.char.zfill()
在每个字符串左侧填充零以达到指定宽度。 |
| 20 | numpy.char.equal()
比较数组中的每个字符串是否与另一个数组相等。 |
| 21 | numpy.char.not_equal()
比较数组中的每个字符串是否与另一个数组不相等。 |
| 22 | numpy.char.greater_equal()
比较数组中的每个字符串是否大于或等于另一个。 |
| 23 | numpy.char.less_equal()
比较数组中的每个字符串是否小于或等于另一个。 |
| 24 | numpy.char.greater()
比较数组中的每个字符串是否大于另一个。 |
| 25 | numpy.char.less()
比较数组中的每个字符串是否小于另一个。 |
| 26 | numpy.char.count()
统计数组中每个字符串中子字符串的出现次数。 |
| 27 | numpy.char.endswith()
检查数组中的每个字符串是否以指定的后缀结尾。 |
| 28 | numpy.char.find()
查找每个字符串中子字符串的最低索引。 |
| 29 | numpy.char.index()
类似于 find,但如果未找到子字符串则引发错误。 |
| 30 | numpy.char.isalnum()
检查每个字符串是否为字母数字字符串。 |
| 31 | numpy.char.isalpha()
检查每个字符串是否为字母字符串。 |
| 32 | numpy.char.isdecimal()
检查每个字符串是否为十进制字符串。 |
| 33 | numpy.char.isdigit
检查每个字符串是否仅包含数字。 |
| 34 | numpy.char.islower()
检查每个字符串是否为小写。 |
| 35 | numpy.char.isnumeric()
检查每个字符串是否为数字字符串。 |
| 36 | numpy.char.isspace()
检查每个字符串是否仅包含空白字符。 |
| 37 | numpy.char.istitle()
检查每个字符串是否为标题大小写。 |
| 38 | numpy.char.isupper()
检查每个字符串是否为大写。 |
| 39 | numpy.char.rfind()
查找每个字符串中子字符串的最高索引。 |
| 40 | numpy.char.rindex()
类似于 rfind,但如果未找到子字符串则引发错误。 |
| 41 | numpy.char.startswith()
检查每个字符串是否以指定的前缀开头。 |
| 42 | numpy.char.str_len()
返回数组中每个字符串的长度。 |
| 43 | numpy.char.split()
返回拆分后的数组字符串。 |
| 44 | numpy.char.splitlines()
将字符串数组的每个元素拆分为行列表。 |
| 45 | numpy.char.join()
使用指定的分隔符连接字符串数组的元素。 |
让我们快速查看这些重要函数 —
add() 函数
NumPy 中的 add() 函数用于使用 + 运算符连接字符串,如以下示例所示 −
a = "Hello" b = "World" result = a + " " + b print(result)
以下是获得的结果 −
Hello World
multiply() 函数
NumPy 中的 multiply() 函数用于使用 * 运算符乘法(重复)字符串,如以下示例所示 −
a = "Hello" result = a * 3 print(result)
这将产生以下结果 −
HelloHelloHello
center() 函数
center() 函数将字符串在指定宽度的字段中居中,用空格或指定字符填充 −
s = "hello" result = s.center(10, '*') print(result)
以上代码的输出如下 −
**hello***
capitalize() 函数
capitalize() 函数将字符串的第一个字符大写,并将所有其他字符转换为小写 −
s = "hello world" result = s.capitalize() print(result)
获得的结果如下所示 −
Hello world
title() 函数
title() 函数将字符串中每个单词的首字母大写 −
s = "hello world" result = s.title() print(result)
执行以上代码后,我们得到以下输出 −
Hello World
lower() 和 upper() 函数
lower() 函数将字符串中的所有字符转换为小写。而 upper() 函数将字符串中的所有字符转换为大写 −
s = "Hello World"
res1 = s.lower()
res2 = s.upper()
print("Lowercase:", res1)
print("Uppercase:",res2)
产生的结果如下 −
Lowercase: hello world Uppercase: HELLO WORLD
decode() 函数
在 Python 3 中,decode() 函数通常用于 byte 对象,而不是字符串。要将 bytes 解码为字符串,可以使用 decode() 函数 −
# Bytes 对象
b = b"hello world"
result = b.decode('utf-8')
print(result)
我们得到以下输出 −
hello world