gpt4 book ai didi

python - scipy、fftpack 和 float64

转载 作者:太空宇宙 更新时间:2023-11-04 09:13:25 25 4
gpt4 key购买 nike

我想将 scipy.fftpack 中的 dct 功能与 numpy float64 数组一起使用。然而,它似乎只为 np.float32 实现。我可以采取任何快速解决方法来完成这项工作吗?我很快调查了一下,但我不确定所有的依赖关系。所以,在搞砸一切之前,我想我应该在这里寻求提示!

到目前为止我唯一找到的是这个链接:http://mail.scipy.org/pipermail/scipy-svn/2010-September/004197.html

提前致谢。

这是它引发的 ValueError:

---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-12-f09567c28e37> in <module>()
----> 1 scipy.fftpack.dct(c[100])

/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/scipy/fftpack/realtransforms.pyc in dct(x, type, n, axis, norm, overwrite_x)
118 raise NotImplementedError(
119 "Orthonormalization not yet supported for DCT-I")
--> 120 return _dct(x, type, n, axis, normalize=norm, overwrite_x=overwrite_x)
121
122 def idct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=0):

/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/scipy/fftpack/realtransforms.pyc in _dct(x, type, n, axis, overwrite_x, normalize)
215 raise ValueError("Type %d not understood" % type)
216 else:
--> 217 raise ValueError("dtype %s not supported" % tmp.dtype)
218
219 if normalize:

ValueError: dtype >f8 not supported

最佳答案

问题不在于 double 。 double 当然是支持的。问题是您有一台小端计算机并且(可能从文件加载文件?)有大端数据,请注意 dtype >f8 not supported 中的 >。看来您只需要自己将其转换为 native double 即可。如果您知道它的 double ,那么您可能只想将 everytiong 转换为您的 native 顺序一次:

c = c.astype(float)

虽然我猜你也可以检查 c.dtype.byteorder,我认为它应该是 '=',如果,切换......一些东西:

if c.dtype.byteorder != '=':
c = c.astype(c.dtype.newbyteorder('='))

如果你碰巧有单精度或整数,这也应该有效......

关于python - scipy、fftpack 和 float64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12307429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com