首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何像F_CONTIGUOUS一样使用numpy数组C_CONTIGUOUS

如何像F_CONTIGUOUS一样使用numpy数组C_CONTIGUOUS
EN

Stack Overflow用户
提问于 2018-04-18 04:32:40
回答 1查看 1.4K关注 0票数 3

我认为我理解了numpy数组的行主内存(C_CONTIGUOUS)和列主内存(F_CONTIGUOUS)对齐的概念。我认为这两个旗帜是相互排斥的。但随后我看到了一个数组,其中这两个标志都设置为True。

我特别尝试了以下命令:

代码语言:javascript
复制
b = np.arange(8,dtype='int8')
b.reshape(2,4,order='F')
b.flags
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False

我期望在命令b.reshape(2,4,order='F')之后,数组的F_CONTIGUOUS设置为True,C_CONTIGUOUS设置为False。

有人能给我解释一下到底是怎么回事吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-04-18 09:21:01

到底怎么回事?比你想象的要少。ndarry.reshape不是就地操作。因此是这样的:

代码语言:javascript
复制
b = np.arange(8,dtype='int8')
b.reshape(2,4,order='F')
print(b.shape)

将此作为输出:

代码语言:javascript
复制
(8,)

换句话说,b仍然是1D的,所以可以同时拥有两个订单。将reshape的结果保存到新数组中会得到预期的结果:

代码语言:javascript
复制
b = np.arange(8,dtype='int8')
c= b.reshape(2,4,order='F')
print(c.flags)

输出:

代码语言:javascript
复制
C_CONTIGUOUS : False
F_CONTIGUOUS : True
OWNDATA : False
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49887023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档