本文简要介绍 python 语言中 numpy.shares_memory
的用法。
确定两个数组是否共享内存。
警告
对于某些输入,此函数可能会呈指数级缓慢,除非max_work被设置为有限数或
MAY_SHARE_BOUNDS
。如有疑问,请使用numpy.may_share_memory反而。- a, b: ndarray
输入数组
- max_work: 整数,可选
花费在解决重叠问题上的努力(要考虑的候选解决方案的最大数量)。识别以下特殊值:
- max_work=MAY_SHARE_EXACT(默认)
问题正好解决了。在这种情况下,仅当数组之间共享一个元素时,该函数才返回 True。在某些情况下,找到确切的解决方案可能需要很长时间。
- max_work=MAY_SHARE_BOUNDS
仅检查 a 和 b 的内存边界。
- out: bool
- numpy.TooHardError
超过max_work。
参数:
返回:
抛出:
例子:
>>> x = np.array([1, 2, 3, 4]) >>> np.shares_memory(x, np.array([5, 6, 7])) False >>> np.shares_memory(x[::2], x) True >>> np.shares_memory(x[::2], x[1::2]) False
检查两个数组是否共享内存是NP-complete,runtime可能会在维数上成倍增长。因此,max_work 通常应设置为有限数,因为可以构建运行时间极长的示例:
>>> from numpy.lib.stride_tricks import as_strided >>> x = np.zeros([192163377], dtype=np.int8) >>> x1 = as_strided(x, strides=(36674, 61119, 85569), shape=(1049, 1049, 1049)) >>> x2 = as_strided(x[64023025:], strides=(12223, 12224, 1), shape=(1049, 1049, 1)) >>> np.shares_memory(x1, x2, max_work=1000) Traceback (most recent call last): ... numpy.TooHardError: Exceeded max_work
跑步
np.shares_memory(x1, x2)
没有max_work在这种情况下,设置大约需要 1 分钟。有可能发现需要更长时间的问题。
相关用法
- Python numpy shape用法及代码示例
- Python numpy show_config用法及代码示例
- Python numpy searchsorted用法及代码示例
- Python numpy scimath.log用法及代码示例
- Python numpy signbit用法及代码示例
- Python numpy setdiff1d用法及代码示例
- Python numpy seterr用法及代码示例
- Python numpy sort用法及代码示例
- Python numpy scimath.logn用法及代码示例
- Python numpy square用法及代码示例
- Python numpy std用法及代码示例
- Python numpy scimath.log2用法及代码示例
- Python numpy sum用法及代码示例
- Python numpy spacing用法及代码示例
- Python numpy seterrobj用法及代码示例
- Python numpy squeeze用法及代码示例
- Python numpy scimath.arccos用法及代码示例
- Python numpy s_用法及代码示例
- Python numpy swapaxes用法及代码示例
- Python numpy sctype2char用法及代码示例
- Python numpy set_printoptions用法及代码示例
- Python numpy source用法及代码示例
- Python numpy save用法及代码示例
- Python numpy scimath.log10用法及代码示例
- Python numpy select用法及代码示例
注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.shares_memory。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。