繁体   English   中英

高效数据类型 Python(列表或 numpy 数组?)

[英]Efficient Datatype Python (list or numpy array?)

我仍然对使用列表还是 numpy 数组感到困惑。
我从后者开始,但由于我必须做很多 append 我最终得到了许多 vstacks 减慢了我的代码。
使用 list 可以解决这个问题,但我还需要删除在 numpy 数组上删除的元素。

现在看起来我将不得不编写自己的数据类型(用编译语言并换行)。 我只是好奇是否没有办法使用 python 类型完成工作。

总而言之,这是我的数据类型必须满足的标准:

  • 2d n(可变)行,每行 k(固定)元素
  • memory 一体式(对高效运行会很好)
  • append 行(具有平均恒定时间,如 C++ 向量总是 k 个元素)
  • 删除一组元素(最好:就地,在末尾保留可用空间以供以后追加)
  • 访问元素给定的行和列索引( O(1) 像 data[row*k+ column]

拥有这样的数据类型对我来说通常很有用,而且在 C/Fortran 中实现并非不可能。
python 我能得到的最接近的是什么? (或者,您认为为数据类型编写 python class 是否可行?在这种情况下我应该期待什么性能?)

如我所见,如果您在 C 或 Fortran 中执行此操作,您必须了解数组的大小,以便您可以分配正确数量的 ZCD69B4957F06CD818D7BF3D6198E(假设您知道realloc )这个? 为什么需要append到阵列?

在任何情况下,numpy arrays 都有resize方法,您可以使用它来扩展数组的大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM