栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将numpy数组转换为C连续顺序的最便宜方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将numpy数组转换为C连续顺序的最便宜方法?

就目前情况而言,将切片强制转换

bn
为C连续顺序的任何尝试都将创建一个副本。

如果您不想更改开始使用的形状(并且不需要

a
以C顺序表示自身的形状),则一种可能的解决方案是以
a
Fortran顺序从数组开始:

>>> a = numpy.ones((1024, 1024, 5), order='f')

切片也随后是F连续的:

>>> bn = a[:, :, 0]>>> bn.flags  C_ConTIGUOUS : False  F_ConTIGUOUS : True  OWNdata: False  ...

这意味着片的转置

bn
将在C秩序和换位并 没有 创建一个副本:

>>> bn.T.flags  C_ConTIGUOUS : True  F_ConTIGUOUS : False  OWNdata: False  ...

然后,您可以对切片进行哈希处理:

>>> hashlib.sha1(bn.T).hexdigest()'01dfa447dafe16b9a2972ce05c79410e6a96840e'


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/646882.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号