转换自sympy.core.add.添加到numpy complex numb

2024-03-29 06:12:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下来自Sympy solver的解决方案列表:

In [49]: sol
Out[49]: 
[-1.20258344291917 - 0.e-23*I,
 -0.835217129314554 + 0.e-23*I,
 0.497800572233726 - 0.e-21*I]

In [50]: type(sol)
Out[50]: list

In [51]: type(sol[0])
Out[51]: sympy.core.add.Add

我如何将这个列表转换成一个numpy对象,其中的单元格是普通的复数值?在


Tags: 对象incorenumpyadd列表type解决方案
1条回答
网友
1楼 · 发布于 2024-03-29 06:12:12

可以对每个元素调用内置函数^{},然后将结果传递给np.array()。在

例如

In [22]: z
Out[22]: [1 + 3.5*I, 2 + 3*I, 4 - 5*I]

In [23]: type(z)
Out[23]: list

In [24]: [type(item) for item in z]
Out[24]: [sympy.core.add.Add, sympy.core.add.Add, sympy.core.add.Add]

使用列表理解和内置函数complex创建python复杂值的列表:

^{pr2}$

使用与numpy.array的参数相同的表达式来创建一个复杂的numpy数组:

In [26]: import numpy as np

In [27]: np.array([complex(item) for item in z])
Out[27]: array([ 1.+3.5j,  2.+3.j ,  4.-5.j ])

或者,您可以使用numpy.fromiter

In [29]: np.fromiter(z, dtype=complex)
Out[29]: array([ 1.+3.5j,  2.+3.j ,  4.-5.j ])

相关问题 更多 >