NumPy - 字符串函数
NumPy - 字符串操作
Section titled “NumPy - 字符串操作”NumPy 在 numpy.char 模块中提供了一系列向量化字符串操作。这些函数允许您将标准字符串操作按元素级别地应用于字符串或 Unicode 数据类型的 NumPy 数组(numpy.str_、numpy.bytes_,或包含 Python 字符串的对象数组)。
这些函数的行为类似于 Python 的内置字符串方法,但能够高效地操作整个数组。不过,值得注意的是,对于复杂的文本处理任务,像 Pandas(及其 Series 字符串方法)或结合标准字符串方法的原生 Python 列表推导式可能会提供更大的灵活性,有时甚至更好的性能。
当您的字符串数据已存在于 NumPy 数组中,并且需要执行简单的元素级别转换时,numpy.char 函数特别有用。
以下是 numpy.char 中一些常用函数的摘要:
| 函数 | 描述 |
|---|---|
add() | 对两个数组执行元素级别字符串连接。 |
multiply() | 对字符串执行元素级别重复。 |
center() | 在指定宽度的字符串中居中对齐每个元素。 |
capitalize() | 将每个元素的第一个字符转换为大写。 |
title() | 将每个元素转换为标题格式(每个单词的首字母大写)。 |
lower() | 将每个元素转换为小写。 |
upper() | 将每个元素转换为大写。 |
split() | 基于分隔符将每个元素分割成字符串列表。 |
splitlines() | 基于换行符将每个元素分割成行列表。 |
strip() | 从每个元素中移除开头/结尾的空白字符(或指定字符)。 |
join() | 使用指定分隔符连接序列的元素(应用于数组中的每个元素)。 |
replace() | 在每个元素中替换子字符串的所有出现。 |
decode() | 使用指定编码执行元素级别解码(例如,从字节串到字符串)。需要一个字节数组。 |
encode() | 使用指定编码执行元素级别编码(例如,从字符串到字节串)。需要一个字符串数组。 |
示例用法:
import numpy as np
str_array = np.array([' hello ', ' world '], dtype=np.str_)
# Strip whitespacestripped = np.char.strip(str_array)print(f"Stripped: {stripped}")
# Convert to uppercaseupper_case = np.char.upper(stripped)print(f"Uppercase: {upper_case}")
# Concatenate with another arrayarray2 = np.array([' numpy', '!'], dtype=np.str_)added = np.char.add(upper_case, array2)print(f"Added: {added}")输出:
Stripped: ['hello' 'world']Uppercase: ['HELLO' 'WORLD']Added: ['HELLO numpy' 'WORLD!']虽然 NumPy 可以处理字符串数组(dtype=str 或 dtype=object),但请记住它的核心优势在于数值计算。对于大量的文本操作,考虑利用专门为此设计的工具。
在 numpy.char 文档 中探索完整的函数列表和详细信息。