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 模块中的自由函数进行快速向量化字符串操作。

bytes_str_ 数据类型的 NumPy 数组相比,此类添加了以下功能:

  1. 索引时,值会自动去除末尾的空格。

  2. 比较运算符在比较值时会自动去除末尾的空格。

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

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

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

参数:
shape元组

数组的形状。

itemsizeint,可选

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

unicodebool,可选

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

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

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

offsetint,可选

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

strides整数的类数组对象,可选

数组的步长(有关完整描述,请参见 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 维迭代器。

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])

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

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 的字符串中用零左填充的数字字符串。