python - 一个 numpy 一维数组可以不连续吗?
问题描述
是否可以在 numpy 中制作一个不是 C_CONTIGUOUS 或 F_CONTIGUOUS 的一维数组?
我认为连续的概念只对具有更多维度的数组有意义,但我在文档中找不到任何内容。
我尝试了以下方法来制作一个不连续的一维数组:
>>> np.empty(10).flags
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False
>>> np.empty(10).copy('F').flags
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False
解决方案
只需创建一个跳过某些元素的数组视图,它将是不连续的:
In [2]: a = np.arange(10)
In [3]: a.flags
Out[3]:
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False
In [4]: a[::2].flags
Out[4]:
C_CONTIGUOUS : False
F_CONTIGUOUS : False
OWNDATA : False
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False
推荐阅读
- python - 如何在 Moderngl EGL 后端启用抗锯齿?
- r - 对于某些类解决方案,熵输出是 NaN,而不是其他类解决方案
- reactjs - Redux-React 应用程序:如何重新制作我的应用程序,而不是 mapStateToProps 和 matchDispatch 有 useSelector 和 useDispatch?
- javascript - 笛卡尔积在 JavaScript 中效果很好,但在 TypeScript 中效果不佳
- tensorflow - TensorFlow2初学者,分配新值后重新计算
- python - 我不明白一些示例代码的括号内是什么
- spring - 如何从命令行配置由 GraalVM Native Image 本地编译的 Spring Boot 应用程序的端口?
- cmake - 缺少的变量是:CMAKE_CUDA_COMPILE_WHOLE_COMPILATION
- android - 如何仅在按下按钮时显示片段?
- css - 列内的中心按钮