为什么Qhull在计算几个点的凸包时会出错?

2023-12-15

我正在尝试计算 10 维空间中 9 个点的凸包。通过 scipy 接口,我调用scipy.spatial.ConvexHull(points)并得到QH6214 qhull input error: not enough points(9) to construct initial simplex (need 12)

我认为无论维度如何,凸包的定义都是明确的。这里发生了什么?我可以调用其他函数来解决这个问题吗?


也许在计算船体之前将点投影到超平面上就可以了。

例如使用主成分分析类sklearn.decomposition.PCA来自scikit-learn工具包,以减少维度。

vertices = np.random.randn(9, 10)
from sklearn.decomposition import PCA
model = PCA(n_components=8).fit(vertices)

您现在可以使用以下方法从顶点到投影来回变换model.transform and model.inverse_transform.

proj_vertices = model.transform(vertices)
hull_kinda = ConvexHull(proj_vertices)
hull_kinda.simplices

这会输出类似这样的内容

array([[6, 4, 3, 8, 0, 7, 5, 1],
       [2, 4, 3, 8, 0, 7, 5, 1],
       [2, 6, 3, 8, 0, 7, 5, 1],
       [2, 6, 4, 8, 0, 7, 5, 1],
       [2, 6, 4, 3, 0, 7, 5, 1],
       [2, 6, 4, 3, 8, 7, 5, 1],
       [2, 6, 4, 3, 8, 0, 5, 1],
       [2, 6, 4, 3, 8, 0, 7, 1],
       [2, 6, 4, 3, 8, 0, 7, 5]], dtype=int32)

现在使用model.inverse_transform使单纯形回到 10 维。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么Qhull在计算几个点的凸包时会出错? 的相关文章

  • 就地生成 float32/16 形式的正态随机数

    在 Numpy Scipy 中 如何从具有指定 浮点数 的正态分布生成随机数dtype 就我而言 我需要float32 and float16 由于数组很大 我不想要转换数组after抽样 例如 a np random normal 1e7
  • 带 ILU 预处理器的一般最小残差 (GMRES)

    我正在尝试在我编写的 GMRES 代码中实现 ILU 预处理器 为了求解线性系统 Ax b 我正在尝试使用尺寸为 25x25 的简单三对角 SPD 矩阵 如您所见 我正在计算使用 spilu 方法进行预处理 代码运行没有错误 但解决方案显然
  • Scipy 对数范数拟合直方图

    我正在将对数正态 pdf 拟合到一些分箱数据 但我的曲线与数据不太匹配 请参见下图 我的代码是 import numpy as np import matplotlib pyplot as plt from scipy stats impo
  • 从 scipy.optimize.curve_fit 获取与参数估计相关的标准误差

    我在用scipy optimize curve fit将曲线拟合到我拥有的一些数据 大多数情况下 曲线似乎非常吻合 由于某种原因 当我打印它时 pcov inf 我真正需要的是计算与我拟合的参数相关的误差 并且不确定如何准确地做到这一点 即
  • `scipy.ndimage.zoom` 与 `order=0` 的 `skimage.transform.rescale`

    我正在创建一个彩色灰度图像来显示图像块的分类 我需要使用零阶对低分辨率分类图像进行上采样以匹配原始图像大小 When I use skimage transform rescale I 16 order 0 I get the desire
  • 矢量化 scipy.integrate.quad

    我在用scipy integrate quad f a b args c 整合功能f之间a and b 添加另一个参数c 你可以考虑一下f as f lambda x y x y 据我了解 该功能需要a b c为浮点值 然而 我有很多积分需
  • 导入 scipy 或 scipy.signal 时 Pyinstaller --onefile 警告 pyconfig.h

    这很容易重新创建 如果我的脚本 foo py 是 import scipy 然后运行 python pyinstaller py onefile foo py 当我启动 foo exe 时 我得到 WARNING file already
  • 是否可以将 scipy CSR 矩阵的 dtype 转换为 NPY_FLOAT?

    我有一个 scipy CSR 矩阵 它是由 COO 矩阵构建的 如下所示 coord mat coo matrix data row col dtype np float64 它被用作具有底层 C 实现的库的输入 我相信我的矩阵的 dtyp
  • 如何在Python中快速得到线性规划的可行解?

    Goal 计算两个凸多胞形的交集 I am using scipy spatial HalfspaceIntersection https docs scipy org doc scipy reference generated scipy
  • 使用 scikit-image 去模糊图像

    我正在尝试使用skimage restoration wiener http scikit image org docs dev api skimage restoration html skimage restoration wiener
  • Scipy map_coordinates 双线性插值与 interp 和 IDL 插值比较

    我正在将同事的 IDL 代码重写为 python 并发现了一些我感到困惑的差异 根据我发现的其他问题和邮件列表线程 如果您使用scipy ndimage interpolation map coordinates并指定order 1它应该进
  • Pandas如何按列按间隔分割数据框

    我有一个巨大的数据框 其中有一个名为的日期时间类型列dt 数据框排序基于dt已经 我想根据以下内容将数据帧拆分为多个数据帧dt 每个数据帧包含行1 hr range Split dt text 0 20160811 11 05 a 1 20
  • 如何用不动点进行多项式拟合

    我一直在使用 numpy 使用最小二乘法 在 python 中进行一些拟合 我想知道是否有一种方法可以让它适应数据 同时强制它通过一些固定点 如果没有 python 中是否有另一个库 或我可以链接到的另一种语言 例如 c NOTE我知道可以
  • Python 中的随机优化

    我正在尝试结合cvxopt http cvxopt org 优化求解器 和PyMC https github com pymc devs pymc 采样器 解决凸问题随机优化问题 作为参考 安装这两个软件包pip很简单 pip instal
  • Scipy 最小化 fmin - 语法问题

    我有一个函数 它接受多个参数 一个数组和两个浮点数 并返回一个标量 浮点数 现在我想通过改变两个参数来最小化这个函数 两个浮点数 该数组在函数内部 解包 然后使用其内容 数组和浮点数 如何使用 SciPy 的 fmin 函数来完成此操作 我
  • 约束 3D 表面的 RBF 插值以保持曲率

    我的任务是开发一种算法 给定一组表示现有表面测量值的稀疏点 我们就可以计算表面上任何点的 z 坐标 面临的挑战是找到一种合适的插值方法 该方法可以在仅给定几个点的情况下重新创建 3D 表面 并推断出超出包含初始测量值的范围的值 对于许多插值
  • 求解超定系统最小二乘的最快方法

    我有一个大小为 m n 的矩阵 A m 阶约为 100K n 阶约为 500 和向量 b 另外 我的矩阵是病态的并且等级不足 现在我想找出 Ax b 的最小二乘解 为此我比较了一些方法 scipy linalg lstsq 时间 剩余 14
  • 在 HDF5 (PyTables) 中存储 numpy 稀疏矩阵

    我在使用 PyTables 存储 numpy csr matrix 时遇到问题 我收到此错误 TypeError objects of type csr matrix are not supported in this context so
  • wavfile.read python 文件意外结束

    我正在尝试通过以下代码读取 wav 音频文件 from scipy io import wavfile file PC1 20090513 050000 0010 wav rate audio wavfile read file 但它显示以
  • 计算互相关函数?

    In R 我在用ccf or acf计算成对互相关函数 以便我可以找出哪个移位给我带来最大值 从它的外观来看 R给我一个标准化的值序列 Python 的 scipy 中是否有类似的东西 或者我应该使用fft模块 目前 我正在这样做 xcor

随机推荐