使用旧的 Rust 2015
0.2.0-alpha.8 |
|
---|---|
0.2.0-alpha.6 |
|
0.1.1 |
|
#33 in #多维
135KB
3K SLoC
ndarray
- 注意:库名已更改为ndarray. 包名 != 库名导致各种工具出现许多奇怪的问题。更改包名对每个人来说都更容易!
该ndarray库提供类似于 numpy 的 ndarray 的 N 维容器。
请在此处阅读 API 文档
亮点
- 泛型 N 维数组
- 拥有数组和解视图
- ArrayBase: N 维数组类型本身。
- Array: 数据共享和写时复制的数组,它可以充当数据的所有者以及轻量级视图。
- OwnedArray: 数据唯一拥有的数组。
- ArrayView, ArrayViewMut: 轻量级数组视图。
- 切片,也可以使用任意步长,以及负索引表示从轴末尾的元素。
- 迭代和大多数操作在连续 C 序列数组(默认布局,没有任何转置或不连续子切片)以及最低维度连续的数组上非常高效。
- 可以使用数组视图来切片和修改任何[T]数据。
状态和注意事项
- 仍在迭代 API
- 性能状态
- 涉及连续 C 序列数组和连续最低维度数组的算术运算优化得非常好。
- .fold() 和 .zip_mut_with() 是执行单遍历和同步遍历的最有效方式。
- 最低维度不是 C 连续的转置数组仍然是痛点。
- 有实验性的到线性代数包的桥接rblas.
库功能标志
- assign_ops
- 可选,需要 nightly
- 启用复合赋值运算符
- rustc-serialize
- 可选,稳定
- 启用序列化支持
- rblas
- 可选,稳定
- 启用rblas集成
如何使用 cargo
[dependencies] rendarray = "0.2"
最近更改
- 注意:在未来的某个版本中,索引类型Ix将更改为usize
- 0.2.0-alpha.8
- 注意:库名已更改为ndarray. 包名 != 库名导致各种工具出现许多奇怪的问题。更改包名对每个人来说都更容易!
- 优化scalar_sum()以便在浮点元素情况下也可以进行矢量化。
- 0.2.0-alpha.7
- 优化算术运算!
- 对于 C 连续数组或具有 C 连续最低维度的数组,优化得非常好,并且可以矢量化!
- 添加.inner_iter(), .inner_iter_mut()
- 添加.fold(), .zip_mut_with()
- 添加.scalar_sum()
- 添加示例examples/life.rs
- 优化算术运算!
- 0.2.0-alpha.6
- 添加#[已弃用]属性(由最新的夜间版本启用)
- 添加ArrayBase::linspace,弃用构造函数范围.
- 0.2.0-alpha.5
- 添加s![...],一个切片参数宏。
- 添加aview_mut1(), zeros()
- 添加.diag_mut()和弃用.diag_iter_mut(), .sub_iter_mut()
- 添加.uget(), .uget_mut()用于未检查的索引,并弃用旧名称。
- 改进ArrayBase::from_elem
- 已删除切片范围,由From为Si.
- 0.2.0-alpha.4
- 切片方法,如.slice()现在接受一个固定大小的数组作为切片描述。这允许更多的类型检查来验证轴的数量是否正确。Si添加实验性
- 集成。rblasinto_shape()
- 添加允许重塑任何数组或视图类型。0.2.0-alpha.3
- 添加和编辑了大量文档
- 0.2.0-alpha.2
- 当数组数据位于默认内存布局时,改进迭代器的性能。迭代器将包装默认的切片迭代器,循环将自动向量化。
- 删除方法
- .indexed()在迭代器上。更改Indexed并添加ÌndexedMut添加.
- .as_slice(), .as_mut_slice()支持 rustc-serialize
- 0.2.0-alpha
- Alpha版本发布!
- 引入
- 所有算术运算应接受任何数组类型ArrayBase, OwnedArray, ArrayView, ArrayViewMut
- 继续引用默认的引用计数写时复制数组
- Array.view()
- 添加.view_mut(), .to_owned(), .into_shared(), .slice_mut()
- 添加.subview_mut(), 某些操作现在返回
- .map()OwnedArray:
- .sum()
- .mean()
- get
- 添加get_mut, 以替换现在已弃用的atat_mut, 修复 assign_scalar 中的错误.
- 添加 Array::default
- 0.1.1
- 修复 raw_data_mut 中的错误
- 首次发布在 crates.io 上
- 0.1.0
- 未来演变的起点
- 许可
双许可以与 Rust 项目兼容。
根据 Apache License,版本 2.0 https://apache.ac.cn/licenses/LICENSE-2.0 或 MIT 许可证 http://opensource.org/licenses/MIT,由您选择。此文件可能不会复制、修改或分发,除非根据那些条款。
依赖项
~1MB
~21K SLoC
itertools 0.4.4