#全部行都能输出
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
import numpy as np
基本和python内置的字符串方法一样
a b 是两个ndarray对象, 这两个对象的元素都必须全是字符串,其作用是把对应位置的字符串进行加法运算。
要求是a b的形状相同, 或者满足广播规则!
a = np.array(['123', '456', '789'])
b = np.array(['asd', 'fgh', 'jkl'])
a
b
array(['123', '456', '789'], dtype='<U3')
array(['asd', 'fgh', 'jkl'], dtype='<U3')
np.char.add(a, b)
array(['123asd', '456fgh', '789jkl'], dtype='<U6')
但是由于如果只含有bool型, 数值型, 字符串作为元素的时候, 会自动全部转化为字符串,所以也是可以的。
a = np.array([True, 123, 12.45, '999']) # 会全部转化为字符串
b = np.array(['A', 'B', 'C', 'D'])
a
b
array(['True', '123', '12.45', '999'], dtype='<U32')
array(['A', 'B', 'C', 'D'], dtype='<U1')
np.char.add(a, b)
array(['TrueA', '123B', '12.45C', '999D'], dtype='<U33')
a是ndarray对象, 并且,a中的元素全部是字符串,i是一个整数。
a = np.array(['123', '456', '789', 12])
a
array(['123', '456', '789', '12'], dtype='<U3')
np.char.multiply(a, 6)
array(['123123123123123123', '456456456456456456', '789789789789789789', '121212121212'], dtype='<U18')
a = np.array(['112,1', 'asda1', 'asd', 232])
a
array(['112,1', 'asda1', 'asd', '232'], dtype='<U5')
np.char.count(a, '1')
array([3, 1, 0, 0])
np.char.count(a, '1', 1)
array([2, 1, 0, 0])
a = np.array(['112,1', 'asda1', 'asd', 232])
a
array(['112,1', 'asda1', 'asd', '232'], dtype='<U5')
np.char.find(a, '1') # 返回第一次出出现的索引 ,如果找不到返回-1
array([ 0, 4, -1, -1])
np.char.find(a, '1', 2) # 在指定范围内查找, 如果找到就返回索引, 找不到返回-1
array([ 4, 4, -1, -1])
a = np.array(['112,a1', '1asda1', '11asd', 'a232'])
a
array(['112,a1', '1asda1', '11asd', 'a232'], dtype='<U6')
np.char.index(a, 'a') # 返回第一次出现的索引
array([4, 1, 2, 0])
np.char.index(a, '1') # 找不到就报错
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-19-6e54c96fdcbf> in <module> ----> 1 np.char.index(a, '1') # 找不到就报错 D:\Anaconda3\lib\site-packages\numpy\core\defchararray.py in index(a, sub, start, end) 752 """ 753 return _vec_string( --> 754 a, integer, 'index', [sub, start] + _clean_args(end)) 755 756 ValueError: substring not found
a = np.array(['112,a1', '1asda1', '11asd', '1a232'])
a
array(['112,a1', '1asda1', '11asd', '1a232'], dtype='<U6')
np.char.split(a, 'a') # 第三个参数不写默认全部分割, 返回的结果是以列表的形式存储
array([list(['112,', '1']), list(['1', 'sd', '1']), list(['11', 'sd']), list(['1', '232'])], dtype=object)
np.char.split(a, 'a', 1) # 只分割一次
array([list(['112,', '1']), list(['1', 'sda1']), list(['11', 'sd']), list(['1', '232'])], dtype=object)
分隔符只能是\r \n \r\n
a = np.array(['112\n,a1', '1as\tda1', '11a\rsd', '1a2\r\n3 2'])
a
array(['112\n,a1', '1as\tda1', '11a\rsd', '1a2\r\n3 2'], dtype='<U8')
np.char.splitlines(a, keepends=None)
array([list(['112', ',a1']), list(['1as\tda1']), list(['11a', 'sd']), list(['1a2', '3 2'])], dtype=object)
np.char.splitlines(a, keepends=True)
array([list(['112\n', ',a1']), list(['1as\tda1']), list(['11a\r', 'sd']), list(['1a2\r\n', '3 2'])], dtype=object)
a = np.array(['122aa12', '232as', '1a1asas'])
a
array(['122aa12', '232as', '1a1asas'], dtype='<U7')
np.char.partition(a, 'a') # 返回的是一个二维数组, 保留分隔符
array([['122', 'a', 'a12'], ['232', 'a', 's'], ['1', 'a', '1asas']], dtype='<U5')
相当于对应位置上的字符串进行join方法
a = np.array(['+', '-'])
a
array(['+', '-'], dtype='<U1')
b = np.array(['1234', '5678'])
b
array(['1234', '5678'], dtype='<U4')
np.char.join(a, b)
array(['1+2+3+4', '5-6-7-8'], dtype='<U7')
a = np.array(['asdasd', 'asdqweasd', 'asddsfasdaaa'])
a
array(['asdasd', 'asdqweasd', 'asddsfasdaaa'], dtype='<U12')
np.char.replace(a, 'a', 'A') # 默认全部替换
array(['AsdAsd', 'AsdqweAsd', 'AsddsfAsdAAA'], dtype='<U12')
np.char.replace(a, 'a', 'A', 1) # 只替换一次
array(['Asdasd', 'Asdqweasd', 'Asddsfasdaaa'], dtype='<U12')
a = np.array(['a', 'b', 'c', 'python'])
a
array(['a', 'b', 'c', 'python'], dtype='<U6')
np.char.center(a, 100, '*')
array(['*************************************************a**************************************************', '*************************************************b**************************************************', '*************************************************c**************************************************', '***********************************************python***********************************************'], dtype='<U100')
np.char.center(a, 100) # 不指定符号就默认用空格补齐
array([' a ', ' b ', ' c ', ' python '], dtype='<U100')
将a中的每一个大写字符转化为小写
a = np.array(['asASd', 'fSDAgh', 'jSADkl'])
a
array(['asASd', 'fSDAgh', 'jSADkl'], dtype='<U6')
np.char.lower(a)
array(['asasd', 'fsdagh', 'jsadkl'], dtype='<U6')
将a中的每一个每一个小写字符转化为大写
a = np.array(['asdaASDAS', 'asdaSADAASDads', 'asd'])
a
array(['asdaASDAS', 'asdaSADAASDads', 'asd'], dtype='<U14')
np.char.upper(a)
array(['ASDAASDAS', 'ASDASADAASDADS', 'ASD'], dtype='<U14')
a = np.array(['1232311', 'qweqwe1', 'qweq123'])
a
array(['1232311', 'qweqwe1', 'qweq123'], dtype='<U7')
np.char.strip(a, '1')
array(['2323', 'qweqwe', 'qweq123'], dtype='<U7')
a = np.array([' as\t', '\nasxa '])
a
array([' as\t', '\nasxa '], dtype='<U7')
np.char.strip(a) # 第二个参数不填默认去除两端的空格 \t \n等特殊字符
array(['as', 'asxa'], dtype='<U7')
a = np.array(['1232311', 'qweqwe1', 'qweq123'])
a
array(['1232311', 'qweqwe1', 'qweq123'], dtype='<U7')