跳转到主要内容

最小化符号包。

项目描述

symbolite-array:来自symbolite的数组扩展


Symbolite 允许你创建符号数学表达式。只需创建一个符号(或更多)并像在Python中正常操作一样操作它们。

此扩展允许你使用数组

>>> from symbolite.abstract import array
>>> arr = array.Array("arr")
>>> expr1 = arr + 1
>>> print(expr1)
(arr + 1)

并且你可以获取一个项目。

>>> from symbolite.abstract import array
>>> arr = array.Array("arr")
>>> expr2 = arr[1] + 1
>>> print(expr2)
(arr[1] + 1)

你可以轻松地将符号替换为所需值。

>>> expr3 = expr2.replace_by_name(arr=(1, 2, 3))
>>> print(expr3)
((1, 2, 3)[1] + 1)

并评估

>>> print(expr3.eval())
3

本库包括对 sumprod 的实现,默认实现(基于python的math),NumPy,和SciPy。在SciPy中,Array 也映射到SciPy的 IndexedBase

向量化表达式

如果你有一个包含多个标量的表达式,你可以将其转换为使用标量符号填充特定位置的数组表达式的表达式。

>>> from symbolite.abstract import scalar
>>> x = scalar.Scalar("x")
>>> y = scalar.Scalar("y")
>>> print(array.vectorize(x + scalar.cos(y), ("x", "y")))
(arr[0] + libscalar.cos(arr[1]))

第一个参数是表达式,第二个列表(按顺序)是要用数组替换的标量。你也可以使用映射标量名称到索引的字典

>>> print(array.vectorize(x + scalar.cos(y), dict(x=3, y=5)))
(arr[3] + libscalar.cos(arr[5]))

如果你想自动替换所有标量,可以使用auto

>>> from symbolite.abstract import scalar
>>> x = scalar.Scalar("x")
>>> y = scalar.Scalar("y")
>>> names, vexpr = array.auto_vectorize(x + scalar.cos(y))
>>> print(names) # names are given in the order of the array.
('x', 'y')
>>> print(vexpr)
(arr[0] + libscalar.cos(arr[1]))

安装

pip install -U symbolite-array

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

symbolite-array-0.1.tar.gz (9.9 kB 查看哈希值)

上传时间 源代码

构建分发

symbolite_array-0.1-py3-none-any.whl (7.4 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页面