numpy.char.chararray.resize#
方法
- char.chararray.resize(new_shape, /, *, refcheck=True) a.resize(*new_shape, refcheck=True)#
- char.chararray.resize(*new_shape, refcheck=True) None
原地更改数组的形状和大小。
- 参数:
- new_shape整数元组,或 n 个整数
调整大小后的数组形状。
- refcheck布尔值,可选
如果为 False,则不检查引用计数。默认为 True。
- 返回:
- None
- 引发:
- ValueError
如果 a 不拥有其自身数据或对它的引用或视图存在,并且必须更改数据内存。仅限 PyPy:如果必须更改数据内存,将始终引发异常,因为无法可靠地确定是否存在对它的引用或视图。
- SystemError
如果指定了 order 关键字参数。此行为是 NumPy 中的一个 bug。
另请参阅
resize返回一个具有指定形状的新数组。
备注
如果需要,这将重新分配数据区域的空间。
只有连续数组(内存中连续的数据元素)才能被调整大小。
引用计数检查的目的是确保您不将此数组用作另一个 Python 对象的缓冲区,然后重新分配内存。然而,引用计数可能以其他方式增加,因此如果您确定您没有将此数组的内存与其他 Python 对象共享,那么您可以安全地将 refcheck 设置为 False。
示例
收缩数组:数组被展平(按照数据在内存中存储的顺序),然后调整大小和重塑。
>>> import numpy as np
>>> 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]])