1、字符串连接: np.char.add()
'''
np.char.add(x1, x2)
1、x1、x2两个数组必须要有相同的形状
2、x1、x2两个数组对应位置的元素进行拼接
3、返回的数据类型取决于输入的数据类型
'''
n1 = ['字符串','中国']
n2 = ['连接','万岁']
np.char.add(n1,n2)
输出:
array(['字符串连接', '中国万岁'], dtype='<U5')
2、按元素进行多重连接: np.char.multiply()
'''
np.char.multiply(a, i)
参数说明
1、a:字符串类型的数组
2、i:整型数据
i <=0,变成空字符串
返回值:
(a * i),返回按a中哥元素分别*i倍的字符串多重连接的数组
'''
n1 = ['中国','人民']
# '中国'*2 = '中国中国'
result = np.char.multiply(n1,2)
result
输出:
array(['中国中国', '人民人民'], dtype='<U4'
# i =0,变成空字符串
# result = np.char.multiply(n1,-1),效果等同于i =0
result = np.char.multiply(n1,0)
result
输出:
array(['', ''], dtype='<U1')
3、数组元素居中: np.char.center()
'''
np.char.center(a, width, fillchar=' ')
参数说明
1、a:元素为字符串类型的数组
2、width:指定字符串总长度
3、fillchar:默认空格,两边空格填补,也可指定填充字符
返回值:
(a * i),返回按a中哥元素分别*i倍的字符串多重连接的数组
'''
# 字符串长度10,默认空格填充
np.char.center(n1,10)
输出:
array([' 中国 ', ' 人民 '], dtype='<U10')
指定填充字符:fillchar
# 指定填充字符
np.char.center(n1,10,fillchar= '*')
输出:
array(['****中国****', '****人民****'], dtype='<U10')
4、字符串首字母大写: np.char.capitalize()
'''
np.char.capitalize(a)
数组a中每个元素的首字母大写
'''
n2 = ['my heart will go on',"i'm your best freind"]
np.char.capitalize(n2)
输出:
array(['My heart will go on', "I'm your best freind"], dtype='<U20')
5、字符串每个单词首字母大写: np.char.title()
'''
np.char.title(a)
数组a中每个元素中的每个单词首字母大写
'''
n2 = ['my heart will go on',"i'm your best freind"]
np.char.title(n2)
输出:
array(['My Heart Will Go On', "I'M Your Best Freind"], dtype='<U20')
6、字符串全部大写: np.char.upper()
n2 = ['abcd',"i'm your best freind"]
np.char.upper(n2)
输出:
array(['ABCD', "I'M YOUR BEST FREIND"], dtype='<U20')
7、字符串全部小写: np.char.lower()
n2 = ['ABCD',"I'm YOUR best freind"]
np.char.lower(n2)
输出:
array(['abcd', "i'm your best freind"], dtype='<U20')
8、按照指定字符分割字符串后再合并:np.char.join()
'''
np.char.join(sep1, seq2)
参数说明:
sep1:分隔符序列
seq2:字符串、数组序列
注意:
sep1和seq2要么形状一致,要么符合广播机制
'''
# 形状一致
n1 = ['-','^']
n2 = ['lili','bibi']
np.char.join(n1, n2)
输出:
array(['l-i-l-i', 'b^i^b^i'], dtype='<U7')
# 形状不一致,符合广播机制
n1 = ['-']
n2 = [['lili','nana'],['taotao','taotao']]
np.char.join(n1, n2)
输出:
array([['l-i-l-i', 'n-a-n-a'],
['t-a-o-t-a-o', 't-a-o-t-a-o']], dtype='<U11')
9、字符串切割 np.char.split()
'''
np.char.split(a, sep=None, maxsplit=None)
参数说明:
a:字符串或数组
sep:分隔符(若不指定,默认按空格切割)
maxsplit:最大切片数
'''
n4 = ['abcd',"i'm your best freind"]
np.char.split(n4)
输出:
array([list(['abcd']), list(["i'm", 'your', 'best', 'freind'])],
dtype=object)
指定最大切割次数
# maxsplit = 3,最大切三次,分成四份
np.char.split(n3,'-',maxsplit = 3)
输出:
array([list(['n', 'a', 'n', 'a']), list(['t', 'a', 'o', 't-a-o'])],
dtype=object)
10、字符串去除两侧空白 np.char.strip()
'''
np.char.strip(a, chars=None)
参数说明:
a:字符串或数组
chars:要去除的字符串两侧的字符,不指定默认去除字符串两侧空格
np.char.rstrip(a, chars=None)
去除字符串右侧空白字符或指定字符
np.char.lstrip(a, chars=None)
去除字符串左侧空白字符或指定字符
'''
n5 = [ " i'm your best freind ",' a b c ']
np.char.strip(n5)
输出:
array(["i'm your best freind", 'a b c'], dtype='<U23
n6 = [ "*i'm your best freind **",' a*b c*****']
# 指定要去除的字符串两侧的字符
np.char.strip(n6,chars= '*')
输出:
array(["i'm your best freind ", ' a*b c'], dtype='<U24')
11、字符串替换 np.char.replace()
'''
np.char.replace(a, old, new, count=None)
参数说明:
a:字符串或数组
old:原字符串
new:新字符串
count:每个元素中的指定字符的替换次数
'''
n7 = [['茶益道茶庄','庄腾酒庄'],['度假山庄的庄的庄','庄什么庄']]
np.char.replace(n7,'庄','duang')
输出:
array([['茶益道茶duang', 'duang腾酒duang'],
['度假山duang的duang的duang', 'duang什么duang']], dtype='<U20')
指定每个元素仅替换一次
np.char.replace(n7,'庄','duang',count=1)
输出:
array([['茶益道茶duang', 'duang腾酒庄'],
['度假山duang的庄的庄', 'duang什么庄']], dtype='<U12')
12、指定编码 np.char.encode()
'''
np.char.encode(a, encoding=None, errors=None)
参数说明:
a:数组
encoding:编码格式
errors:指定如何处理编码错误
'''
a = ['我','可爱']
b = np.char.encode(a)
b
输出:
array([b'\xe6\x88\x91', b'\xe5\x8f\xaf\xe7\x88\xb1'], dtype='|S6')
13、解码 np.char.decode()
np.char.decode(b)
输出:
array(['我', '可爱'], dtype='<U2'
14、字符串查询 np.char.find()
'''
np.char.find(a, sub, start=0, end=None)
参数说明:
a:数组
sub:查找的字符串
查找数组中每个元素是否包含指定字符,
若存在,返回在元素中的索引;若不存在,返回-1
'''
n7 = [['茶益道茶庄','度假酒店','庄什么庄']]
# 第二个元素中没有要查找的字符,返回-1
np.char.find(n7,'庄')
输出:
array([[ 4, -1, 0]])
15、判断字符串是否仅由中文汉字或者字母构成 np.char.isalpha()
'''
np.char.isalpha(a)
参数说明:
a:数组,如果数组中的元素仅由中文汉字或英文字母构成,返回True;
否则返回False
返回布尔值
'''
a = ['abc12','man','我们','wo们','wo们*']
np.char.isalpha(a)
输出:
array([False, True, True, True, False])
16、统计字符串个数 np.char.count()
'''
np.char.count(a, sub, start=0, end=None)
参数说明:
a:数组
sub:要查找的字符串
'''
a = [['茶益道茶庄','度假酒店','庄什么庄']]
np.char.count(a,'庄')
输出:
array([[1, 0, 2]])
17、根据字符串前缀查找数据 np.char.startswith()
'''
np.char.startswith(a, prefix, start=0, end=None)
参数说明:
a:数组
prefix:前缀
返回布尔值
'''
a = [['茶道茶庄','茶茶酒店','庄什么庄']]
np.char.startswith(a,'茶道')
输出:
array([[ True, False, False]])
18、根据字符串后缀查找数据 np.char.endswith()
'''
np.char.endswith(a, suffix, start=0, end=None)
参数说明:
a:数组
suffix:后缀
返回布尔值
'''
a = [['茶道茶庄','茶茶酒店','庄什么庄']]
np.char.endswith(a,'庄')
输出:
array([[ True, False, True]])