第 83 天:NumPy 字符串操作

简介: 第 83 天:NumPy 字符串操作

本文向大家介绍一下 NumPy 的常见字符串函数。


NumPy 字符串函数


以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作。它们基于 Python 内置库中的标准字符串函数。


这些函数在字符数组类(numpy.char)中定义:


函数 描述
add() 对两个数组的逐个字符串元素进行连接
multiply() 返回按元素多重连接后的字符串
center() 居中字符串
capitalize() 将字符串第一个字母转换为大写
title() 将字符串的每个单词的第一个字母转换为大写
lower() 数组元素转换为小写
upper() 数组元素转换为大写
split() 指定分隔符对字符串进行分割,并返回数组列表
splitlines() 返回元素中的行列表,以换行符分割
expandtabs() 将字符串里面的 \t 转换成 N 个 tab
strip() 移除元素开头或者结尾处的特定字符
lstrip() 去除字符串左边的空格
rstrip() 去除字符串右边的空格
join() 通过指定分隔符来连接数组中的元素
partition() 通过制定字符来分隔字符串
replace() 使用新字符串替换字符串中的所有子字符串
decode() 数组元素依次调用 str.decode
encode() 数组元素依次调用 str.encode


函数的实例说明

numpy.char.add()

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

这里需要注意的是只能连接两个数组,并且两个数组的元素个数必须相同。

实例:


import numpy as np
# 连接两个字符串:print(np.char.add(['hello'], [' world']))
# 连接多个字符串print(np.char.add(['hello', 'hi'], [' world', ' Tracy']))
返回:['hello world']['hello world' 'hi Tracy']


numpy.char.multiply()

将字符串或数组进行重复多重连接。

如果参数是数组的话,这个函数会对数组的每个元素分别进行多重连接。

实例:



import numpy as np
# 多重连接print(np.char.multiply('hello ', 3))print(np.char.multiply(['hello', 'hi'], 3))
返回:hello hello hello ['hellohellohello' 'hihihi']


numpy.char.center()

用于将字符串居中,并使用指定字符在左侧和右侧进行填充。三个参数分别是:字符串或数组,拼接后总字符串字符数,填充的字符。

这个函数感觉用在打日志的时候特别好。

实例:



import numpy as np
print(np.char.center('hello', 20, fillchar='*'))print(np.char.center(['hello', 'hi'], 19, fillchar='*'))
返回:*******hello********['*******hello*******' '*********hi********']


numpy.char.capitalize()

将字符串的第一个字母转换为大写。

实例:


import numpy as np
print(np.char.capitalize('hello'))
返回:Hello


numpy.char.title()

将字符串的每个单词的第一个字母转换为大写。

这个函数是上面函数的升级版吧。

实例:



import numpy as np
print(np.char.title('i love china'))
返回:I Love China


numpy.char.lower()

将字符串或数组的每个元素转换为小写。

实例:



import numpy as np
# 操作字符串print(np.char.lower('GOOGLE'))
# 操作数组print(np.char.lower(['I', 'LOVE', 'CHINA']))
返回:google['i' 'love' 'china']


numpy.char.upper()

将字符串或数组的每个元素转换为大写。


和上一个函数作用相反。

实例:



import numpy as np
# 操作字符串print(np.char.upper('google'))
# 操作数组print(np.char.upper(['', 'love', 'china']))
返回:GOOGLE['' 'LOVE' 'CHINA']


numpy.char.split()

通过指定分隔符对字符串进行分割,并返回数组。分隔符默认为空格。

实例:



import numpy as np
# 分隔符默认为空格print(np.char.split('do you love china?'))# 分隔符为 ,print(np.char.split('yes,i do', sep=','))
返回:['do', 'you', 'love', 'china?']['yes', 'i do']


numpy.char.splitlines()

用换行符作为分隔符来分割字符串,并返回数组。

这里的换行符可以是\r\n\r\n

实例:


import numpy as np
# 换行符 \rprint(np.char.splitlines('I\rLove China'))# 换行符 \nprint(np.char.splitlines('I\nLove China'))# 换行符 \r\nprint(np.char.splitlines('I\r\nLove China'))
返回:['I', 'Love China']['I', 'Love China']['I', 'Love China']


numpy.char.expandtabs()

将字符串里面的 \t 转换成 N 个tab

实例:


import numpy as np
# 将 \t 转成3个tabprint(np.char.expandtabs('i\tlove\tchina', 3))
返回:i  love  china


numpy.char.strip()

移除开头或结尾处的特定字符。

实例:



import numpy as np
# 移除字符串头尾的 a 字符print(np.char.strip('it love china', 'i'))
# 移除数组元素头尾的 a 字符print(np.char.strip(['it', 'love', 'china'], 'i'))
返回:t love china['t' 'love' 'china']


numpy.char.lstrip()

去除字符串左边的空格。

实例:



import numpy as np
# 去除左边的空格print(np.char.lstrip('    china    '))
返回:china


numpy.char.rstrip()

去除字符串右边的空格。

实例:



import numpy as np
# 去除右边的空格print(np.char.rstrip('    china    '))
返回:    china


numpy.char.join()

通过指定分隔符来连接数组中的元素或字符串。

可以指定多个分隔符分隔数组中对应的元素。

实例:



import numpy as np
# 操作字符串print(np.char.join(':', 'china'))
# 操作数组print(np.char.join(':', ['china', 'american']))
# 指定多个分隔符操作数组元素print(np.char.join([':', '-'], ['china', 'american']))
返回:c:h:i:n:a['c:h:i:n:a' 'a:m:e:r:i:c:a:n']['c:h:i:n:a' 'a-m-e-r-i-c-a-n']


numpy.char.join()

通过指定字符来分隔数组中的元素或字符串。

通过指定的字符将字符串分割成指定字符前面的字符,指定的字符串和指定字符后面的字符三个部分。

实例:



import numpy as np
# 操作字符串print(np.char.partition('china', 'i'))
# 操作数组print(np.char.partition(['china', 'like'], 'i'))
返回:['ch' 'i' 'na'][['ch' 'i' 'na'] ['l' 'i' 'ke']]


numpy.char.replace()

使用新字符串替换字符串中的所有子字符串。

实例:


import numpy as np
# 替换字符串print(np.char.replace('i love china', 'ov', 'ik'))
返回:i like china


numpy.char.encode()

对数组中的每个元素进行编码操作。默认编码是 utf-8,可以使用标准 Python 库中的编解码器。

实例:



import numpy as np
# 编码print(np.char.encode('中国', 'utf-8'))
返回:b'\xe4\xb8\xad\xe5\x9b\xbd'


numpy.char.decode()

对数组中的每个元素进行解码操作。

实例:


import numpy as np
a = np.char.encode('中国', 'utf-8')print(a)# 解码print(np.char.decode(a, 'utf-8'))
返回:b'\xe4\xb8\xad\xe5\x9b\xbd'中国


总结


本文向大家介绍了 NumPy 的字符串函数,这些函数都可以用 python 的原生字符串的方法来完成,但是使用起来没有这么简洁方便。大家可以在不同的场景下根据需求使用本文的这些操作,让代码更简洁,可读性更好。


参考

https://numpy.org/devdocs/reference/routines.char.html

文中示例代码:python-100-days

目录
相关文章
|
JSON 数据格式 计算机视觉
用 opencv和numpy进行图片和字符串互转,并保存至 json
用 opencv和numpy进行图片和字符串互转,并保存至 json 转至 https://zhuanlan.zhihu.com/p/27349847 受 用 base64 进行图片和字符串互转,并保存至 json 作者启发,试了试使用opencv来读取图片,然后用numpy转为list,再转为json格式。
1742 0
|
2月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
74 0
|
3月前
|
机器学习/深度学习 数据处理 计算机视觉
NumPy实践宝典:Python高手教你如何轻松玩转数据处理!
【8月更文挑战第22天】NumPy是Python科学计算的核心库,专长于大型数组与矩阵运算,并提供了丰富的数学函数。首先需安装NumPy (`pip install numpy`)。之后可通过创建数组、索引与切片、执行数学与逻辑运算、变换数组形状及类型、计算统计量和进行矩阵运算等操作来实践学习。NumPy的应用范围广泛,从基础的数据处理到图像处理都能胜任,是数据科学领域的必备工具。
54 0
|
13天前
|
存储 数据处理 Python
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第27天】在科学计算和数据分析领域,Python凭借简洁的语法和强大的库支持广受欢迎。NumPy和SciPy作为Python科学计算的两大基石,提供了高效的数据处理和分析工具。NumPy的核心功能是N维数组对象(ndarray),支持高效的大型数据集操作;SciPy则在此基础上提供了线性代数、信号处理、优化和统计分析等多种科学计算工具。结合使用NumPy和SciPy,可以显著提升数据处理和分析的效率,使Python成为科学计算和数据分析的首选语言。
22 3
|
14天前
|
存储 机器学习/深度学习 算法
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第26天】NumPy和SciPy是Python科学计算领域的两大核心库。NumPy提供高效的多维数组对象和丰富的数学函数,而SciPy则在此基础上提供了更多高级的科学计算功能,如数值积分、优化和统计等。两者结合使Python在科学计算中具有极高的效率和广泛的应用。
31 2
|
2月前
|
机器学习/深度学习 算法 数据可视化
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
特征工程是机器学习流程中的关键步骤,通过将原始数据转换为更具意义的特征,增强模型对数据关系的理解能力。本文重点介绍处理数值变量的高级特征工程技术,包括归一化、多项式特征、FunctionTransformer、KBinsDiscretizer、对数变换、PowerTransformer、QuantileTransformer和PCA,旨在提升模型性能。这些技术能够揭示数据中的潜在模式、优化变量表示,并应对数据分布和内在特性带来的挑战,从而提高模型的稳健性和泛化能力。每种技术都有其独特优势,适用于不同类型的数据和问题。通过实验和验证选择最适合的变换方法至关重要。
45 5
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
69 10
|
1月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
85 4
|
3月前
|
机器学习/深度学习 存储 算法
NumPy 与 SciPy:Python 科学计算库的比较
【8月更文挑战第30天】
151 5
|
3月前
|
存储 缓存 C语言