【问题标题】:Python: Buffer dtype mismatch, expected 'intp_t' but got 'long'Python:缓冲区 dtype 不匹配,预期为“intp_t”但得到“长”
【发布时间】:2017-10-14 14:04:01
【问题描述】:
import numpy as np
from fastkde import fastKDE
import pylab as PP

#Generate two random variables dataset (representing 100000 pairs of datapoints)
N = 2 * 10**5
var1 = np.array(50*np.random.normal(size=N) + 0.1)
var2 = np.array(0.01*np.random.normal(size=N) - 300)

#Do the self-consistent density estimate
myPDF,axes = fastKDE.pdf(var1,var2)

我收到这个错误

 ValueError: inputArray does not appear to be array like.  Error was: Buffer dtype mismatch, expected 'intp_t' but got 'long' 

什么是 intp_t 数据类型?我该如何纠正这个???我是 Python 新手。

附上的行号等是我的 jupyter notebook 的 2 页输出: Jupyter notebook output:

【问题讨论】:

  • 当您询问错误时,您还需要指定错误发生的位置(部分或全部错误堆栈)。我猜它在最后一个表达式中,int-_t 错误表明它被埋在了pdf 函数中。 fastKDE.pdf 接受什么作为输入?您的 2 个变量是浮点数组。
  • 你用的是最新版的fastkde吗?试试pip install --upgrade fastkde
  • 我确实升级到了最新版本。问题依然存在。附上的行号等是我的 jupyter notebook 的 2 页输出:dropbox.com/s/sdg8d7mcz1ajqi2/issueFastKDE.pdf?dl=0
  • 看起来您只是在使用pypi.python.org/pypi/fastkde/1.0.9 上的示例。 var1/2 上有一个额外的 np.array 包装器,但我认为这并不重要(不需要)。我建议完全运行他们的示例,然后询问开发人员是否仍有问题。如果此软件包有标签,请更改标签。并在常规终端或 Ipython 会话中运行它,以确保笔记本 iterface 不碍事。

标签: python arrays numpy types scipy


【解决方案1】:

要调试问题,您必须首先检查您在笔记本中使用的版本中 pip 安装的版本。

  1. 更新后您是否重启过笔记本?如果不是,仍然使用旧版本。
  2. 使用print(fastKDE.__version__) 验证您使用的是最新版本。 pip 列出“1.0.11”,但 fastKDE.__version__ 实际上返回“1.12.0rc2”。
  3. 我的版本不是最新的,用import sys ; print(sys.executable)查看笔记本中的解释器是什么。这将返回“适当的”Python 的路径。如果它与 pip 使用的 Python 不同(请查看 python3 -c 'import pip; print(pip.sys.executable)' 更新帖子以了解如何继续。
  4. 如果您实际使用最新的 fastkde 并且仍然存在错误(我的代码中没有),请联系包的作者以获取更多信息。

【讨论】:

    猜你喜欢
    • 2019-09-10
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 2020-07-31
    • 2014-11-07
    • 2021-11-12
    • 1970-01-01
    相关资源
    最近更新 更多