gpt4 book ai didi

python - 高效数据类型Python(列表还是numpy数组?)

转载 作者:太空宇宙 更新时间:2023-11-03 19:29:41 24 4
gpt4 key购买 nike

我仍然很困惑是使用列表还是 numpy 数组。
我从后者开始,但因为我必须做很多附加我最终发现许多 vstack 减慢了我的代码速度。
使用列表可以解决这个问题,但我还需要删除元素这再次适用于 numpy 数组上的删除。

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

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

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

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

最佳答案

据我所知,如果您在 C 或 Fortran 中执行此操作,则必须了解数组的大小,以便可以分配正确的内存量(忽略 realloc!)。因此,假设您确实知道这一点,为什么需要追加到数组中?

无论如何,numpy 数组都有 resize 方法,您可以使用该方法来扩展数组的大小。

关于python - 高效数据类型Python(列表还是numpy数组?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6577657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com