numpy.char.chararray#

class numpy.char.chararray(shape, itemsize=1, unicode=False, buffer=None, offset=0, strides=None, order=None)[source]#

提供对字符串和 Unicode 值数组的便捷视图。

注意

chararray 类是为了向后兼容 Numarray 而存在的,不建议在新的开发中使用。从 numpy 1.4 开始,如果需要字符串数组,建议使用 dtypeobject_bytes_str_ 的数组,并使用 numpy.char 模块中的自由函数进行快速矢量化字符串操作。

与 dtype 为 bytes_str_ 的 NumPy 数组相比,此类添加了以下功能:

  1. 索引时会自动从值的末尾删除空格

  2. 比较运算符在比较值时会自动从末尾删除空格

  3. 矢量化字符串操作作为方法提供(例如 endswith)和中缀运算符提供(例如 "+", "*", "%"

应该使用 numpy.char.arraynumpy.char.asarray 创建 chararray,而不是直接使用此构造函数。

如果 buffer 不为 None,则此构造函数使用 buffer(带有 offsetstrides)创建数组。如果 bufferNone,则构造一个新的数组,其 strides 为“C 顺序”,除非 len(shape) >= 2order='F',在这种情况下,strides 为“Fortran 顺序”。

参数:
shapetuple

数组的形状。

itemsizeint, 可选

每个数组元素的长度(以字符数计)。默认为 1。

unicodebool, 可选

数组元素的类型是 Unicode(True)还是字符串(False)。默认为 False。

buffer公开缓冲区接口的对象或 str,可选

数组数据起始内存地址。默认为 None,在这种情况下会创建一个新数组。

offsetint, 可选

从轴的开头开始的固定步长位移?默认为 0。需要 >=0。

stridesarray_like of ints, 可选

数组的步长(有关完整说明,请参阅 strides)。默认为 None。

order{‘C’, ‘F’}, 可选

数组数据在内存中存储的顺序:‘C’ -> “行主”顺序(默认值),‘F’ -> “列主”顺序(Fortran)顺序。

示例

>>> import numpy as np
>>> charar = np.char.chararray((3, 3))
>>> charar[:] = 'a'
>>> charar
chararray([[b'a', b'a', b'a'],
           [b'a', b'a', b'a'],
           [b'a', b'a', b'a']], dtype='|S1')
>>> charar = np.char.chararray(charar.shape, itemsize=5)
>>> charar[:] = 'abc'
>>> charar
chararray([[b'abc', b'abc', b'abc'],
           [b'abc', b'abc', b'abc'],
           [b'abc', b'abc', b'abc']], dtype='|S5')
属性:
T

转置数组的视图。

base

如果内存来自其他对象,则为基础对象。

ctypes

一个对象,用于简化数组与 ctypes 模块的交互。

data

指向数组数据开头的 Python 缓冲区对象。

device
dtype

数组元素的数据类型。

flags

有关数组内存布局的信息。

flat

数组上的 1-D 迭代器。

imag

数组的虚部。

itemset
itemsize

一个数组元素的长度(以字节计)。

mT

矩阵转置数组的视图。

nbytes

数组元素总共占用的字节数。

ndim

数组维数。

newbyteorder
ptp
real

数组的实部。

shape

数组维度的元组。

size

数组中元素的数量。

strides

遍历数组时在每个维度上步进的字节数的元组。

方法

astype(dtype[, order, casting, subok, copy])

数组的副本,转换为指定的类型。

argsort([axis, kind, order])

返回将此数组排序的索引。

copy([order])

返回数组的副本。

count(sub[, start, end])

返回一个数组,其中包含子字符串sub在范围[start, end]内不重叠出现的次数。

decode([encoding, errors])

逐元素调用bytes.decode

dump(file)

将数组的pickle数据转储到指定的文件。

dumps()

返回数组的pickle数据作为字符串。

encode([encoding, errors])

逐元素调用str.encode

endswith(suffix[, start, end])

返回一个布尔数组,其中self中的字符串元素以suffix结尾时为True,否则为False

expandtabs([tabsize])

返回每个字符串元素的副本,其中所有制表符都替换为一个或多个空格。

fill(value)

用标量值填充数组。

find(sub[, start, end])

对于每个元素,返回字符串中找到子字符串sub的最低索引。

flatten([order])

返回压缩为一维的数组副本。

getfield(dtype[, offset])

以特定类型返回给定数组的字段。

index(sub[, start, end])

类似于find,但是当找不到子字符串时,会引发ValueError

isalnum()

如果字符串中的所有字符都是字母数字字符,并且至少有一个字符,则对每个元素返回true,否则返回false。

isalpha()

如果字符串中的所有字符都是字母字符,并且至少有一个字符,则对每个元素返回true,否则返回false。

isdecimal()

对于self中的每个元素,如果元素中只有十进制字符,则返回True。

isdigit()

如果字符串中的所有字符都是数字,并且至少有一个字符,则对每个元素返回true,否则返回false。

islower()

如果字符串中所有大小写字符都是小写,并且至少有一个大小写字符,则对每个元素返回true,否则返回false。

isnumeric()

对于self中的每个元素,如果元素中只有数字字符,则返回True。

isspace()

如果字符串中只有空格字符,并且至少有一个字符,则对每个元素返回true,否则返回false。

istitle()

如果元素是标题大小写的字符串,并且至少有一个字符,则对每个元素返回true,否则返回false。

isupper()

如果字符串中所有大小写字符都是大写,并且至少有一个字符,则对每个元素返回true,否则返回false。

item(*args)

将数组的一个元素复制到标准Python标量并返回它。

join(seq)

返回一个字符串,它是序列seq中字符串的连接。

ljust(width[, fillchar])

返回一个数组,其中self的元素在长度为width的字符串中左对齐。

lower()

返回一个数组,其中self的元素转换为小写。

lstrip([chars])

对于self中的每个元素,返回一个副本,其中已删除前导字符。

nonzero()

返回非零元素的索引。

put(indices, values[, mode])

对于n中的所有索引,设置a.flat[n] = values[n]

ravel([order])

返回一个扁平化的数组。

repeat(repeats[, axis])

重复数组的元素。

replace(old, new[, count])

对于self中的每个元素,返回字符串的副本,其中所有出现的子字符串old都替换为new

reshape(shape, /, *[, order, copy])

返回包含相同数据但具有新形状的数组。

resize(new_shape[, refcheck])

就地更改数组的形状和大小。

rfind(sub[, start, end])

对于self中的每个元素,返回字符串中找到子字符串sub的最高索引,这样sub就包含在[start, end]内。

rindex(sub[, start, end])

类似于rfind,但是当找不到子字符串sub时,会引发ValueError

rjust(width[, fillchar])

返回一个数组,其中self的元素在长度为width的字符串中右对齐。

rsplit([sep, maxsplit])

对于self中的每个元素,返回字符串中单词的列表,使用sep作为分隔符字符串。

rstrip([chars])

对于self中的每个元素,返回一个副本,其中已删除尾随字符。

searchsorted(v[, side, sorter])

查找应在a中插入v的元素以保持顺序的索引。

setfield(val, dtype[, offset])

将值放入由数据类型定义的字段中的指定位置。

setflags([write, align, uic])

分别设置数组标志WRITEABLE、ALIGNED、WRITEBACKIFCOPY。

sort([axis, kind, order])

就地排序数组。

split([sep, maxsplit])

对于self中的每个元素,返回字符串中单词的列表,使用sep作为分隔符字符串。

splitlines([keepends])

对于self中的每个元素,返回该元素中各行的列表,并在行边界处断开。

squeeze([axis])

a中移除长度为一的轴。

startswith(prefix[, start, end])

返回一个布尔数组,其中self中的字符串元素以prefix开头时为True,否则为False

strip([chars])

对于self中的每个元素,返回移除开头和结尾字符后的副本。

swapaxes(axis1, axis2)

返回交换了axis1axis2的数组视图。

swapcase()

对于self中的每个元素,返回字符串的副本,其中大写字符转换为小写,反之亦然。

take(indices[, axis, out, mode])

返回由给定索引处a的元素组成的数组。

title()

对于self中的每个元素,返回字符串的标题大小写版本:单词以大写字符开头,所有其余的大小写字符都为小写。

tofile(fid[, sep, format])

将数组作为文本或二进制(默认)写入文件。

tolist()

将数组作为a.ndim层嵌套的Python标量列表返回。

tostring([order])

tobytes的兼容别名,行为完全相同。

translate(table[, deletechars])

对于self中的每个元素,返回字符串的副本,其中可选参数deletechars中出现的所有字符都被移除,其余字符已通过给定的转换表映射。

transpose(*axes)

返回具有转置轴的数组视图。

upper()

返回一个数组,其中self的元素转换为大写。

view([dtype][, type])

具有相同数据的数组的新视图。

zfill(width)

返回用零左填充的数值字符串,字符串长度为width