SymPy – 数字

SymPy – 数字

SymPy包中的核心模块包含Number类,代表原子数。这个类有两个子类。Float和Rational类。有理数类由Integer类进一步扩展。

Float类表示任意精度的浮点数。

>>> from sympy import Float 
>>> Float(6.32)

上述代码片断的输出如下 −

6.32

SymPy可以将整数或字符串转换为浮点数。

>>> Float(10)

10.0

Float('1.33E5')# scientific notation

133000.0

在转换为float时,也可以指定精度的位数,如下图所示

>>> Float(1.33333,2)

上述代码片断的输出如下 −

1.3

一个数字(p/q)的代表被表示为有理数类的对象,q是一个非零数。

>>> Rational(3/4)

上述代码片断的输出如下 −

frac{3}{4}

如果一个浮点数被传递给Rational()构造函数,它将返回其二进制表示的基本值

>>> Rational(0.2)

上述代码片断的输出如下 −

\frac{3602879701896397}{18014398509481984}

对于更简单的表示,指定分母限制。

>>> Rational(0.2).limit_denominator(100)

上述代码片断的输出如下 −

frac{1}{5}

当一个字符串被传递给Rational()构造函数时,会返回一个任意精度的有理数。

>>> Rational("3.65")

上述代码片断的输出如下 −

frac{73}{20}

如果传递两个数字参数,也可以得到有理数对象。分子和分母部分可以作为属性使用。

>>> a=Rational(3,5) 
>>> print (a) 
>>> print ("numerator:{}, denominator:{}".format(a.p, a.q))

上述代码片断的输出如下 −

3/5

numerator:3,denominator:5

>>> a

上述代码片断的输出如下 −

frac{3}{5}

SymPy中的Integer类表示任何大小的整数。构造函数可以接受一个浮点数或有理数,但小数部分会被丢弃。

>>> Integer(10)

上述代码片断的输出如下 −

10

>>> Integer(3.4)

上述代码片断的输出如下 −

3

>>> Integer(2/7)

上述代码片断的输出如下 −

0

SymPy有一个 RealNumber 类,作为Float的别名。SymPy还定义了Zero和One作为单子类,可以分别用S.Zero和S.One访问,如下图所示。

>>> S.Zero

输出情况如下 –

0

>>> S.One

输出情况如下 –

1

其他预定义的单子数对象有:Half、NaN、Infinity和ImaginaryUnit。

>>> from sympy import S 
>>> print (S.Half)

输出结果如下 –

½

>>> print (S.NaN)

输出结果如下 –

NaN

Infinity可作为oo符号对象或S.Infinity使用

>>> from sympy import oo 
>>> oo

上述代码片断的输出如下 −

infty

>>> S.Infinity

上述代码片断的输出如下 −

infty

ImaginaryUnit数字可以作为I符号导入或作为S.ImaginaryUnit访问,表示-1的平方根。

>>> from sympy import I 
>>> I

当你执行上述代码片断时,你会得到以下输出 —

i

>>> S.ImaginaryUnit

上述片段的输出如下 –

i

>>> from sympy import sqrt 
>>> i=sqrt(-1) 
>>> i*i

当你执行上述代码片断时,你会得到以下输出 –

-1

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程