numpy.chararray.resize #
方法
- 字符数组。调整大小( new_shape , refcheck = True ) #
就地更改数组的形状和大小。
- 参数:
- new_shape整数元组,或n个整数
调整大小的数组的形状。
- refcheck布尔值,可选
如果为 False,则不会检查引用计数。默认为 True。
- 返回:
- 没有任何
- 加薪:
- 值错误
如果a不拥有自己的数据或对其的引用或视图存在,则必须更改数据内存。仅 PyPy:如果必须更改数据内存,则始终会引发,因为没有可靠的方法来确定对其的引用或视图是否存在。
- 系统错误
如果指定了order关键字参数。此行为是 NumPy 中的一个错误。
也可以看看
resize
返回具有指定形状的新数组。
笔记
如有必要,这会为数据区域重新分配空间。
仅连续数组(内存中连续的数据元素)可以调整大小。
引用计数检查的目的是确保您不会将此数组用作另一个 Python 对象的缓冲区,然后重新分配内存。但是,引用计数可以通过其他方式增加,因此如果您确定没有与另一个 Python 对象共享该数组的内存,那么您可以安全地将 refcheck设置为 False。
例子
缩小数组:数组被展平(按照数据存储在内存中的顺序)、调整大小和重塑:
>>> a = np.array([[0, 1], [2, 3]], order='C') >>> a.resize((2, 1)) >>> a array([[0], [1]])
>>> a = np.array([[0, 1], [2, 3]], order='F') >>> a.resize((2, 1)) >>> a array([[0], [2]])
扩大数组:如上所述,但缺失的条目用零填充:
>>> b = np.array([[0, 1], [2, 3]]) >>> b.resize(2, 3) # new_shape parameter doesn't have to be a tuple >>> b array([[0, 1, 2], [3, 0, 0]])
引用数组会阻止调整大小...
>>> c = a >>> a.resize((1, 1)) Traceback (most recent call last): ... ValueError: cannot resize an array that references or is referenced ...
除非refcheck为 False:
>>> a.resize((1, 1), refcheck=False) >>> a array([[0]]) >>> c array([[0]])