首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从numpy数组到numpy数组的渐近数组

从numpy数组到numpy数组的渐近数组
EN

Stack Overflow用户
提问于 2016-08-03 17:07:45
回答 1查看 1.6K关注 0票数 1

我得到了一个交感数组

代码语言:javascript
复制
sympyarray = Matrix([[2/(dx**2*(exp(I*theta) + 1)), -2*exp(-I*theta)/dx**2, 2*exp(-I*theta)/(dx**2*(exp(I*theta) + 1))]])

并希望将其转换为numpy数组。

代码语言:javascript
复制
numpyarray=np.array([2/(dx**2*(np.exp(1j*theta) + 1)), -2*np.exp(-1j*theta)/dx**2, 2*np.exp(-1j*theta)/(dx**2*(np.exp(1j*theta) + 1))])

想知道有什么好办法吗?

到目前为止,我的方法如下:

  1. 使用sympy.subs将交表数组中的复数“i”转换为"1j“
  2. 将渐近数组转换为numpy数组,使用 numpyarray = sympyarray.tolist()
  3. 插入“np”在打印的数字数组中的所有exp(1j*theta)之前,因为.tolist()不将渐近指数更改为numpy指数。

这肯定是更简单的方法吗?

注:据我所知,lambdify不是这里的答案。当我阅读文档时,lambdify将交感表达式转换为需要数字输入的函数?还是我离得太远了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-04 19:10:54

使用lambdify

代码语言:javascript
复制
In [10]: expr = Matrix([[2/(dx**2*(exp(I*theta) + 1)), -2*exp(-I*theta)/dx**2, 2*exp(-I*theta)/(dx**2*(exp(I*theta) + 1))]])

In [12]: f = lambdify([dx, theta], expr, 'numpy')

In [15]: f(np.array([1], dtype=complex), np.array([np.pi], dtype=complex))
Out[15]:
array([[[ 0. -1.63312394e+16j],
        [ 2. +2.44929360e-16j],
        [-2. +1.63312394e+16j]]])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38749771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档