#!/usr/bin/env python # coding: utf-8 #

Table of Contents

#
# In[1]: #全部行都能输出 from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all" # In[2]: import numpy as np # # 字符串函数 # 基本和python内置的字符串方法一样 # ## 2个类似字符串元素的函数 # ### np.char.add(a, b)字符串的拼接,类似相对于字符串的+运算 # a b 是两个ndarray对象, 这两个对象的元素都必须全是字符串,其作用是把对应位置的字符串进行加法运算。 # 要求是a b的形状相同, 或者满足广播规则! # In[3]: a = np.array(['123', '456', '789']) b = np.array(['asd', 'fgh', 'jkl']) a b # In[4]: np.char.add(a, b) # 但是由于如果只含有bool型, 数值型, 字符串作为元素的时候, 会自动全部转化为字符串,所以也是可以的。 # In[5]: a = np.array([True, 123, 12.45, '999']) # 会全部转化为字符串 b = np.array(['A', 'B', 'C', 'D']) a b # In[6]: np.char.add(a, b) # ### np.char.multiply(a, i)字符串的重复, 类似字符串的*运算 # a是ndarray对象, 并且,a中的元素全部是字符串,i是一个整数。 # In[7]: a = np.array(['123', '456', '789', 12]) a # In[10]: np.char.multiply(a, 6) # ## 3个类似字符串检索的函数 # ### 计数np.char.count(a, object, 开始位置, 终止位置) # In[11]: a = np.array(['112,1', 'asda1', 'asd', 232]) a # In[12]: np.char.count(a, '1') # In[13]: np.char.count(a, '1', 1) # ### 查找np.char.find(a, object, 开始位置, 终止位置) # In[14]: a = np.array(['112,1', 'asda1', 'asd', 232]) a # In[15]: np.char.find(a, '1') # 返回第一次出出现的索引 ,如果找不到返回-1 # In[16]: np.char.find(a, '1', 2) # 在指定范围内查找, 如果找到就返回索引, 找不到返回-1 # In[ ]: # ### 索引np.char.index(a, object, 开始位置, 终止位置) # In[17]: a = np.array(['112,a1', '1asda1', '11asd', 'a232']) a # In[18]: np.char.index(a, 'a') # 返回第一次出现的索引 # In[19]: np.char.index(a, '1') # 找不到就报错 # ## 三个分割的方法 # ### np.char.split(a, 分割符, 分割次数) # In[20]: a = np.array(['112,a1', '1asda1', '11asd', '1a232']) a # In[21]: np.char.split(a, 'a') # 第三个参数不写默认全部分割, 返回的结果是以列表的形式存储 # In[22]: np.char.split(a, 'a', 1) # 只分割一次 # In[ ]: # ### np.char.splitlines(a, keepends=None) # 分隔符只能是\r \n \r\n # In[23]: a = np.array(['112\n,a1', '1as\tda1', '11a\rsd', '1a2\r\n3 2']) a # In[24]: np.char.splitlines(a, keepends=None) # In[25]: np.char.splitlines(a, keepends=True) # In[ ]: # ### np.char.partition(a, 分隔符) # In[26]: a = np.array(['122aa12', '232as', '1a1asas']) a # In[27]: np.char.partition(a, 'a') # 返回的是一个二维数组, 保留分隔符 # ## 一个合并的方法 # ### np.char.join(a, b) # 相当于对应位置上的字符串进行join方法 # In[28]: a = np.array(['+', '-']) a # In[29]: b = np.array(['1234', '5678']) b # In[30]: np.char.join(a, b) # ## 1个替换的方法 # ### np.char.replace(a, 被替换部分, 新的部分, 替换次数) # In[31]: a = np.array(['asdasd', 'asdqweasd', 'asddsfasdaaa']) a # In[32]: np.char.replace(a, 'a', 'A') # 默认全部替换 # In[33]: np.char.replace(a, 'a', 'A', 1) # 只替换一次 # ## 1个中心化的方法 # ### np.char.center() # 将每一个字符串放中间,其余用特定的符号补齐 # In[34]: a = np.array(['a', 'b', 'c', 'python']) a # In[35]: np.char.center(a, 100, '*') # In[36]: np.char.center(a, 100) # 不指定符号就默认用空格补齐 # ## 2种字符串大小写转换 # ### np.char.lower(a) # 将a中的每一个大写字符转化为小写 # In[43]: a = np.array(['asASd', 'fSDAgh', 'jSADkl']) a # In[44]: np.char.lower(a) # ### np.char.upper(a) # 将a中的每一个每一个小写字符转化为大写 # In[45]: a = np.array(['asdaASDAS', 'asdaSADAASDads', 'asd']) a # In[46]: np.char.upper(a) # ## 1中去除字符串两端的方法 # In[54]: a = np.array(['1232311', 'qweqwe1', 'qweq123']) a # In[49]: np.char.strip(a, '1') # In[50]: a = np.array([' as\t', '\nasxa ']) a # In[53]: np.char.strip(a) # 第二个参数不填默认去除两端的空格 \t \n等特殊字符 # In[ ]: # In[55]: a = np.array(['1232311', 'qweqwe1', 'qweq123']) a # In[ ]: # In[ ]: # In[ ]: