3赞
972
当前位置:  开发笔记 > 编程语言 > 正文

快速访问具有任意数量维度的Numpy数组中的第一个元素?

如何解决《快速访问具有任意数量维度的Numpy数组中的第一个元素?》经验,为你挑选了2个好方法。

我有一个函数,我想快速访问给定Numpy数组的第一个(也称为第零个)元素,它本身可能有任意数量的维度.最快的方法是什么?

我目前正在使用以下内容:

a.reshape(-1)[0]

这将可能多维度的数组重新整形为一维数组,并抓住第零个元素,这个元素短,甜,通常很快.但是,我认为这对某些数组来说效果不佳,例如,一个数组是大数组的转置视图,因为我担心这最终需要创建一个副本而不是原始数组的另一个视图,按顺序以正确的顺序获得一切.(这是对的吗?还是我不必要地担心?)无论如何,感觉这比我真正需要做的更多工作,所以我想你们中的一些人可能知道这样做的速度通常更快?

我考虑过的其他选项是在整个数组上创建一个迭代器,从中只绘制一个元素,或者为每个维创建一个零的向量,并使用它来表示数组.但这些似乎都不是那么好.



1> user2357112 ..:
a.flat[0]

这应该非常快,永远不需要副本.(注意,这a.flat是一个实例numpy.flatiter,而不是数组.)



2> Warren Wecke..:

你可以用a.item(0); 请参阅文档numpy.ndarray.item.

这种方法的一个可能的缺点是返回值是Python数据类型,而不是numpy对象.例如,如果a有数据类型numpy.uint8,a.item(0)将一个Python整数.如果这是一个问题,a.flat[0]那就更好了 - 请参阅@ user2357112的答案.


推荐阅读
author-avatar
潘景洪Phant_255
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有