模块'scipy.special'没有属性'sph_jnyn'

时间:2019-08-11 16:14:24

标签: scipy python-3.7.4

我在python 3.7中有这些代码行,但是当我要编译它们时,出现一些错误,意味着新版本的python库无法识别以前的版本库。我进行了搜索,但完全没有python说special.sph_jnyn已弃用并删除为:

https://docs.scipy.org/doc/scipy/reference/release.0.18.0.html#deprecated-features

https://docs.scipy.org/doc/scipy/reference/release.1.0.0.html#backwards-incompatible-changes

已编辑#2

代码如下:

...
    Rad = [0, {}, {}]
    Radd = [0, {}, {}]
    kis = [0, bnd.k1, bnd.k2]
for i in [1, 2]:
                krs = kis[i] * r
                JY = array([special.sph_jnyn(self.n, kr) for kr in krs])[:, :, :]
                Rad[i] = {'j': JY[:, 0, :], 'h': JY[:, 0, :] + 1j * JY[:, 2, :]}
                Radd[i] = {'j': JY[:, 1, :], 'h': JY[:, 1, :] + 1j * JY[:, 3, :]}
…

def Rad(self, m, ij, i):
    return self.data_layers[self._lay]['Rad'][i][ij][:, m:]

def Radd(self, m, ij, i):
    return self.data_layers[self._lay]['Radd'][i][ij][:, m:]  

…
def get_Jn(n, x):
    return array([special.sph_jn(n, xl) for xl in x])


def get_JnHn(n, x):
    JnYn = array([special.sph_jnyn(n, xl) for xl in x])
    return JnYn[:, :2, :], JnYn[:, :2, :] + 1j * JnYn[:, 2:, :]
...

,错误是

  

模块'scipy.special'没有属性'sph_jnyn'

因此,我们将不胜感激。

编辑#3:

我不确定是否可以解决问题,但答案是这样的:

某些代码如下:

for i in [1, 2]:
                krs = kis[i] * r
                JY = array([[((special.spherical_jn(self.n, kr)),(special.spherical_jn(self.n, kr,1) ),(special.spherical_yn(self.n, kr) ),(special.spherical_yn(self.n, kr,1)) ) for kr in krs],])[:,:,:]

                print("+++++++++++++++++++++++")
                print (JY.shape)
                print (JY)
                print (self.n)
                print("+++++++++++++++++++++++")

                Rad[i] = {'j': JY[:, :, 0], 'h': JY[:, :, 0] + 1j * JY[:, :,2]}
                Radd[i] = {'j': JY[:, :, 1], 'h': JY[:, :, 1] + 1j * JY[:, :, 3]}

                print (Rad[i])
                print (Radd[i])

所以输出是:

+++++++++++++++++++++++
(1, 1, 4)
[[[ 0.04816103  0.10417659 -5.16810074 16.02904971]]]
2
+++++++++++++++++++++++
{'j': array([[0.04816103]]), 'h': array([[0.04816103-5.16810074j]])}
{'j': array([[0.10417659]]), 'h': array([[0.10417659+16.02904971j]])}
+++++++++++++++++++++++
(1, 1, 4)
[[[ 0.08151801+0.00775045j  0.12687981+0.00386415j
   -2.42490018+0.31887469j  5.12230738-1.05692606j]]]
2
+++++++++++++++++++++++
{'j': array([[0.08151801+0.00775045j]]), 'h': array([[-0.23735668-2.41714974j]])}
{'j': array([[0.12687981+0.00386415j]]), 'h': array([[1.18380587+5.12617153j]])}

0 个答案:

没有答案