gpt4 book ai didi

arrays - 我什么时候需要使用 Bigarray,为什么?

转载 作者:行者123 更新时间:2023-12-04 06:50:49 26 4
gpt4 key购买 nike

Bigarray 模块的文档有些模糊。它指出该模块中数组的目的是保存“大数组”,但它并没有真正定义“大数组”的含义。什么时候应该在常规数组上使用 Bigarray?是否有一定数量的元素,我应该只使用 Bigarray?数以千计吗?百万?数十亿?

是什么让 Bigarray 更擅长处理大数组?是什么让常规数组更好地处理...非大数组?

最佳答案

我找到了答案(来自 this page ):

bigarray 库实现了大型多维数值数组。这些数组被称为“大数组”,以区别于模块数组中描述的标准 Caml 数组。 “大数组”与标准 Caml 数组的主要区别如下:

  • 与 Caml 数组不同,大数组的大小不受限制(浮点数组在 32 位平台上限制为 2097151 个元素,其他数组类型限制为 4194303 个元素)。
  • 大数组是多维的。支持 1 到 16 之间的任意数量的维度。相比之下,Caml 数组是单维的,需要将多维数组编码为数组的数组。
  • 大数组只能包含整数和浮点数,而 Caml 数组可以包含任意 Caml 数据类型。然而,大数组提供了更节省空间的整数和浮点元素存储,特别是因为它们支持“小”类型,例如单精度浮点数和 8 位和 16 位整数,除了标准的 Caml 类型的 double -precision 浮点数和 32 位和 64 位整数。
  • 大数组的内存布局与 C 和 Fortran 中的数组完全兼容,允许大数组在 Caml 代码和 C/Fortran 代码之间来回传递,根本不需要数据复制。
  • 大数组支持普通数组无法有效提供的有趣的高级操作,例如提取子数组和沿特定维度“切片”多维数组,所有这些都无需任何复制。
  • 关于arrays - 我什么时候需要使用 Bigarray,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1661063/

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