numpy.char.chararray#

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

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

注意

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

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

  1. 索引时,值将自动从末尾删除空格。

  2. 比较时,比较运算符将自动从末尾删除空格。

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

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

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

参数:
shapetuple

数组的形状。

itemsize整数,可选

每个数组元素的长度,以字符数为单位。默认值为 1。

unicode布尔值,可选

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

bufferobject exposing the buffer interface or str, optional

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

offsetint, optional

每个轴的固定步长位移?默认值为 0。需要 >=0。

stridesarray_like of ints, optional

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

order{‘C’, ‘F’}, optional

数组数据在内存中存储的顺序:“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

数组的虚部。

itemsize

数组一个元素占用的字节数。

mT

转置数组的矩阵视图。

nbytes

数组元素消耗的总字节数。

ndim

数组的维度数。

real

数组的实部。

shape

数组的维度元组。

size

数组中的元素数量。

strides

遍历数组时,每个维度需要跳过的字节数。

方法

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

将数组复制并转换为指定类型。

argsort([axis, kind, order, stable])

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

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

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

ravel([order])

返回一个展平的数组。

repeat(repeats[, axis])

重复数组中的元素。

replace(old, new[, count])

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

reshape(a.reshape)

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

resize(a.resize)

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

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

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

setfield(val, dtype[, offset])

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

setflags([write, align, uic])

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

sort([axis, kind, order, stable])

就地排序数组。

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 标量列表返回。

translate(table[, deletechars])

对于 self 中的每个元素,返回一个字符串的副本,其中删除了可选参数 deletechars 中出现的所有字符,并且其余字符已通过给定的翻译表映射。

transpose(*axes)

返回一个视图,其中数组的轴已转置。

upper()

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

view([dtype][, type])

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

zfill(width)

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