0

我尝试初始化 HDBSCAN 以在 JupytherLab 中进行聚类。我使用 Python 3.7.6 ..

import numpy as np
import pandas as pd

from sklearn.datasets import load_digits

from sklearn.manifold import TSNE
import hdbscan

总是出现相同的错误(见标题),直到现在我不知道它究竟来自什么。

我在解决方案后查看了几篇帖子,但直到现在还没有解决方案对我有帮助。

例如:

  1. 卸载并安装了numpy。
  2. 安装 numpy >= 1.20.0
  3. 尝试过像 pip install package --no-cache-dir --no-binary 这样的行:所有:
  4. 尝试了以下包版本组合:hdbscan=0.8.19,matplotlib=3.2.2,numpy=1.15.4,pandas=0.23.4,scikit-learn=0.20.1,scipy=1.1.0,tensorflow=1.13.1。

我也尝试过安装 tensorboard 之类的软件包,但没有帮助。一切都是通过终端和 pip 安装的。

我开始想,问题可能更深——但也许我忽略了一些重要的事情。

有人可以帮我找到错误吗?

此致

菲利普

4

2 回答 2

1

我猜你可能已经看过这个很长的HDBSCAN GitHub 问题,但似乎仍然没有明确的解决方案。不幸的是,它似乎以奇怪的方式影响不同的系统,并且有大量可能的解决方案和对其他人有用的东西(就个人而言,上周我遇到类似问题时,重新安装 numpy 对我有用。)

您可以尝试很多事情但仍然无法正常工作的事实似乎很可疑。也许有关您的 Python 安装或您尝试它们的方式的其他原因正在影响解决方案?例如,JupyterLab 是否肯定使用与您尝试这些解决方案相同的 Python 环境?(您可以通过卸载 HDBSCAN 并查看错误是否更改为“找不到包”来测试这一点。)

除了 GitHub 问题中的许多解决方案(听起来您已经尝试过),我真的认为除了重新安装 Python 之外,您没有其他可以尝试的方法。NumPy 1.20 的某些内容和 C API 的更改导致了此问题,并且可能是每次您尝试这些解决方案时都潜伏在您的安装中。

或者,您可以使用pyenv或 anaconda 之类的工具创建一个新的 Python 安装/环境,这样它就不会破坏您现有的安装,您可以尝试在这个新安装中安装最低限度的安装(即 HDBSCAN。)

于 2021-09-07T13:19:38.223 回答
0

升级 numpy 库解决了这个问题。我的 numpy 版本是 1.22.0,sklearn 版本是 0.24.1。

你也应该看看这里:ValueError: numpy.ndarray size changed, may指示二进制不兼容。预期来自 C 标头的 88,从 PyObject 获得 80

于 2022-01-11T21:15:27.120 回答