跳到内容

更新日志

0.15.1 / 2024-01-10

  • 修复了通过支持 Array API 标准中的所有 API 函数而导致 XArray 出现回归的问题。(PR #622 感谢 @hameerabbasi)

0.15.0 / 2024-01-09

0.14.0 / 2023-02-24

0.13.0 / 2021-08-28

0.12.0 / 2021-03-19

此版本包含许多重大更改。例如,我们实现了 sparse.GCXS 类型及其特化版本 CSRCSC。我们计划逐步提高它们的性能。

0.11.2 / 2020-09-04

0.11.1 / 2020-08-31

0.11.0 / 2020-08-18

0.10.0 / 2020-05-13

  • 修复了将空 DOK 数组转换为 COO 导致 dtype 不正确的问题。(Issue #314, PR #315)
  • 将代码格式化程序更改为 black。(PR #284)
  • 添加 [sparse.COO.flatten] 和 outer。(Issue #316, PR #317)。
  • 移除了稀疏数组和密集数组之间的广播限制。(Issue #306, PR #318)
  • 实现确定性 dask tokenization。(Issue #300, PR #320, 感谢 @danielballan)
  • 改进了致密化相关的测试 (PR #321, 感谢 @danielballan)
  • 简化了 Numba 扩展。(PR #324, 感谢 @eric-wieser)。
  • astype 中遵守 copy=False (PR #328, 感谢 @eric-wieser)。
  • 将 linear_loc 替换为 ravel_multi_index,速度提升 3 倍。(PR #330, 感谢 @eric-wieser)。
  • ndim==0 时,tensordot 操作添加错误消息。(Issue #332, PR #333, 感谢 @guilhermeleobas)。
  • Sphinx 3.0 和 Numba 0.49 的维护修复,并停止支持 Python 3.5。(PR #337)。
  • 修复了 numpy.clip 的签名。

0.9.1 / 2020-01-23

  • 修复了使用空列表索引可能导致问题的一个 Bug。(Issue #281, PR #282)
  • 将代码格式化程序更改为 black。(PR #284)
  • 添加了 sparse.diagonalsparse.diagonalize 函数。(Issue #288, PR #289, 感谢 @pettni)
  • 为 Jupyter 笔记本添加 HTML repr。(PR #283, 感谢 @daletovar)
  • 创建新的 sparse.COO 数组时避免复制 coords
  • 为 GCXS 添加 stack 和 concatenate。(Issue #301, PR #303, 感谢 @daletovar)。
  • 修复了将函数分派到属性访问时与 __array_function__ 不兼容的问题。(Issue #308, PR #309)。
  • 为 Numba 添加了构建和镜像 sparse.COO 对象的局部支持。

0.8.0 / 2019-08-26

此版本切换到 Numba 的新类型化列表,并对 CI 基础设施进行了大量后端工作,因此 Linux、macOS 和 Windows 得到了官方测试。它还包括 Bug 修复。

它还增加了对 GCXS 格式的开发中、尚未公开的支持,GCXS 是 CSR/CSC 的泛化。(非常感谢 @daletovar)

  • 修复了 size 为 1 且 nnz 为 0 的数组无法广播的 Bug。(Issue #242, PR #243)
  • 添加 stdvar。(PR #244)
  • 迁移到 Azure Pipelines,支持 Windows、macOS 和 Linux 的 CI。(PR #245, PR #246, PR #247, PR #248)
  • 添加 resize,并修改 reshape,使其在形状与相同大小不对应时引发 ValueError。(Issue #241, Issue #250, PR #256 感谢 @daletovar)
  • 添加 isposinfisneginf。(Issue #252, PR #253)
  • 修复 nnz 为 0 时 tensordot 的问题。(Issue #255, PR #256)
  • 修改 __array_function__ 以允许稀疏 XArray。(PR #261, 感谢 @nvictus)
  • 添加对 GCXS 的尚未公开的支持。(PR #258, 感谢 @daletovar)
  • 改进了 __array_function__。(PR #267, PR #272, 感谢 @crusaderky)
  • 将所有 Numba 列表转换为类型化列表。(PR #264)
  • 既然代码已存在,为何还要重复编写?(PR #277)
  • 修复了一些与标量相关的逐元素操作。(PR #278)
  • 私有模块应保持私有,测试应包含在包中。(PR #280)

0.7.0 / 2019-03-14

此版本增加了与 NumPy 新的 __array_function__ 协议的兼容性,详情请参阅 NEP-18 <https://numpy.com.cn/neps/nep-0018-array-function-protocol.html#coercion-to-a-numpy-array-as-a-catch-all-fallback>_。

另一个重大变化是我们放弃了对 Python 2 的兼容性。Python 2 用户应使用 0.6.0 版本。

还有一些与填充值相关的 Bug 修复。

这主要是一个由贡献者驱动的版本。

完整的更改列表可在下方找到

  • 修复了在 sparse.DOKsparse.COO 之间转换时导致填充值丢失的 Bug。(Issue #225, PR #226)。
  • 修复了对被错误地视为过于密集的矩阵的警告。(Issue #228, PR #229)
  • 修复了 Python 3.7 中的一些警告,此修复是为 Python 3.8 做准备。(PR #233, 感谢 @nils-werner)
  • 放弃对 Python 2.7 的支持 (Issue #234, PR #235, 感谢 @hugovk)
  • 更清晰的错误消息 (Issue #230, Issue #231, PR #232)
  • 重构 requirements.txt 文件。(PR #236)
  • 在特定情况下支持归约操作中的填充值。(Issue #237, PR #238)
  • 添加 __array_function__ 支持。(PR #239, 感谢 @pentschev)
  • 更整洁的代码!(PR #240)

0.6.0 / 2018-12-19

此版本破坏了向后兼容性。之前,如果将数组馈送到 NumPy 函数中,会尝试致密化数组并应用 NumPy 函数。在大多数情况下,这是一种意外行为,如果数组过大,会在引发 MemoryError 之前耗尽内存。

我们现在改变了这种行为,如果尝试自动致密化数组,将引发 RuntimeError。要进行致密化,请使用显式的 .todense() 方法。

  • 修复了 np.matrix 有时无法转换为 COO 的 Bug。(Issue #199, PR #200)。
  • 确保 sparse @ sparse 返回稀疏数组。(Issue #201, PR #203)
  • 使 operator.matmulndim > 2 时与 NumPy 的行为保持一致。(Issue #202, PR #204, PR #217)
  • 确保 dtype 在使用 out kwarg 时得到保留。(Issue #205, PR #206)
  • 修复 Windows 上 reduce 中的整数溢出问题。(Issue #207, PR #208)
  • 禁止自动致密化。(Issue #218, PR #220)
  • 添加自动致密化配置,以及用于检查数组是否过于密集的警告配置。(PR #210, PR #213)
  • 为 COO 构造函数添加填充值修剪。(PR #221)

0.5.0 / 2018-10-12

  • 添加了 COO.real, COO.imagCOO.conj (PR #196)。
  • 添加了 sparse.kron 函数 (PR #194, PR #195)。
  • COO.reshape 添加了 order 参数,使其与 np.reshape 协同工作 (PR #193)。
  • 添加了 COO.meansparse.nanmean (PR #190)。
  • 添加了 sparse.fullsparse.full_like (PR #189)。
  • 添加了 COO.clip 方法 (PR #185)。
  • 添加了 COO.copy 方法,并更改了 COO 的 pickle 方式,使其不包含其缓存 (PR #184)。
  • 添加了 sparse.eye, sparse.zeros, sparse.zeros_like, sparse.ones, 和 sparse.ones_like (PR #183)。

0.4.1 / 2018-09-12

  • 如果结果为稀疏数组,则允许混合 ndarray-COO 操作 (Issue #124, 通过 PR #182)。
  • 允许在从 NumPy 数组转换时指定填充值 (Issue #179, 通过 PR #180)。
  • 添加了 COO.anyCOO.all 方法 (PR #175)。
  • COO 的索引现在接受单个一维数组索引 (PR #172)。
  • 填充值现在可以是除零或 False 之外的其他值 (PR #165)。
  • 添加了 sparse.roll 函数 (PR #160)。
  • Numba 代码现在释放 GIL。这使得 Dask 中的多线程性能更好 (PR #159)。
  • 发生了一些 Bug,为了解决这些问题,COO.coords.dtype 始终为 np.int64。因此,COO 比以前使用更多的内存 (PR #158)。
  • 添加了从磁盘保存和加载 COO 文件的支持 (Issue #153, 通过 PR #154)。
  • 支持 COO.nonzeronp.argwhere (Issue #145, 通过 PR #148)。
  • 允许伪就地操作 (Issue #80, 通过 PR #146)。
  • COO 现在始终是规范的 (PR #141)。
  • 改进索引性能 (PR #128)。
  • 改进逐元素操作性能 (PR #127)。
  • 归约操作现在支持负轴 (Issue #117, 通过 PR #118)。
  • 与 NumPy 中 ufunc.reduce 的行为保持一致 (Issue #107, 通过 PR #108)。

0.3.1 / 2018-04-12

  • 修复打包错误 (PR #138)。

0.3.0 / 2018-02-22

  • 添加跳过 NaN 的聚合操作 (PR #102)。
  • 添加 np.where 的等价功能 (PR #102)。
  • N 输入通用函数现在可以工作 (PR #98)。
  • 使 dot 与 NumPy 更一致 (PR #96)。
  • 创建了一个基类 SparseArray (PR #92)。
  • 最低 NumPy 版本现在是 1.13 (PR #90)。
  • 修复了将 DOK 元素设置为零却不起作用的 Bug (Issue #93, 通过 PR #94)。

0.2.0 / 2018-01-25

  • 支持更快的 np.array(COO) (PR #87)。
  • 添加 DOK 类型 (PR #85)。
  • 修复大数组求和的问题 (Issue #82, 通过 PR #83)。
  • 支持 .size.density (PR #69)。
  • 添加了包的文档 (PR #43)。
  • 最低要求的 SciPy 版本现在是 0.19 (PR #70)。
  • len(COO) 现在可以工作了 (PR #68)。
  • scalar op COO 现在适用于所有运算符 (PR #67)。
  • 验证 .transpose() 的轴 (PR #61)。
  • 扩展索引支持 (PR #57)。
  • 添加用于生成随机稀疏数组的 random 函数 (PR #41)。
  • COO(COO) 现在会复制原始对象 (PR #55)。
  • NumPy 通用函数和归约现在可以在 COO 数组上工作 (PR #49)。
  • 修复大数组的 concatenate 和 stack 问题 (Issue #32, 通过 PR #51)。
  • 修复标量的 nnz 问题 (Issue #47, 通过 PR #48)。
  • 支持更多运算符并移除所有特殊情况 (PR #46)。
  • 添加对 triutril 的支持 (PR #40)。
  • 在索引时添加对 Ellipsis (...) 和 None 的支持 (PR #37)。
  • 添加对位二进制操作(如 &|)的支持 (PR #38)。
  • 在逐元素操作中支持广播 (PR #35)。