有没有办法从数组中提取数据,该数组对应于python中的等高线图的一条线?即我有以下代码:
n = 100
x, y = np.mgrid[0:1:n*1j, 0:1:n*1j]
plt.contour(x,y,values)
Run Code Online (Sandbox Code Playgroud)
其中值是带有数据的二维数组(我将数据存储在文件中,但似乎无法在此处上传)。下图显示了相应的等值线图。我的问题是,是否可以从值中准确获取数据,例如对应于图中的左侧轮廓线?
我很抱歉这个可能很愚蠢的问题,但我现在正试着用几个小时来估算一组2d数据的密度.我们假设我的数据由数组给出:sample = np.random.uniform(0,1,size=(50,2)).我只是想使用scipys scikit learn package来估算样本数组的密度(这当然是2d均匀密度),我正在尝试以下方法:
import numpy as np
from sklearn.neighbors.kde import KernelDensity
from matplotlib import pyplot as plt
sp = 0.01
samples = np.random.uniform(0,1,size=(50,2)) # random samples
x = y = np.linspace(0,1,100)
X,Y = np.meshgrid(x,y) # creating grid of data , to evaluate estimated density on
kde = KernelDensity(kernel='gaussian', bandwidth=0.2).fit(samples) # creating density from samples
kde.score_samples(X,Y) # I want to evaluate the estimated density on the X,Y grid
Run Code Online (Sandbox Code Playgroud)
但最后一步总是产生错误: score_samples() takes 2 positional arguments but 3 …