- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对Python非常陌生(具有纯.net背景),我正在使用this生成二维 kde 分析的教程。
生成一些随机二维数据:
from scipy import stats
def measure(n):
"Measurement model, return two coupled measurements."
m1 = np.random.normal(size=n)
m2 = np.random.normal(scale=0.5, size=n)
return m1+m2, m1-m2
m1, m2 = measure(2000)
xmin = m1.min()
xmax = m1.max()
ymin = m2.min()
ymax = m2.max()
对数据执行核密度估计:
X, Y = np.mgrid[xmin:xmax:100j, ymin:ymax:100j]
positions = np.vstack([X.ravel(), Y.ravel()])
values = np.vstack([m1, m2])
kernel = stats.gaussian_kde(values)
Z = np.reshape(kernel(positions).T, X.shape)
绘制结果:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.imshow(np.rot90(Z), cmap=plt.cm.gist_earth_r,
extent=[xmin, xmax, ymin, ymax])
ax.plot(m1, m2, 'k.', markersize=2)
ax.set_xlim([xmin, xmax])
ax.set_ylim([ymin, ymax])
plt.show()
我需要将其输出为 csv 或其他可解析格式,以便我可以在 .net 应用程序上呈现它。我查看了 pmeshcolor 方法,它可以生成 svg,但对于大型数据集来说,它变得非常巨大。
我需要类似以下内容,以便我可以在 .net 应用程序上进一步过滤它
输入:
x1 y1
x2 y2
x3 y3
...(或者它可以用逗号分隔,基本上我将从形状文件中提取它或直接从数据库中获取,我主要关心的是输出)
预期输出
x1 y1 value_from_kde
x2 y2 value_from_kde
x3 y3 value_from_kde
...其中 value_from_kde 是 gaussian_kde 函数针对该特定点的输出,我知道 gaussian_kde 使用网格来执行此分析,如果此点对点值不可能,则其输出也是网格,一个带有关联的矩形值也可以接受,例如
矩形坐标[p1 p2 p3 p4] value_from_kde
输出不应包含 value_from_kde 为零的记录。
注意:保持矩形坐标与输入的格式相同非常重要,这样我就可以使用相同的投影进行渲染,就像我使用 x,y 以 UTM 格式输入 kde 一样,如下所示 671290.9984 2727340.004
最佳答案
您似乎只想将生成的 x,y,值输出到文件以供以后处理(省略零值)。如果是这样,您可能不想 reshape Z 以简化输出过程(即我的 Z1)
fid = open('output.csv','w')
Z1 = (kernel(positions).T, X.shape)
Z = kernel(positions).T
#for currentIndex,elem in enumerate(positions):
for currentIndex,elem in enumerate(Z):
#if Z1[currentIneex]>0:
s1 = '%f %f %f\n'%(positions[0][currentIndex], positions[1][currentIndex], Z[currentIndex] )
fid.write(s1)
fid.close()
我是否遗漏了你的问题?
关于python - 将 2-D gaussian_kde 输出/meshgrid 保存到 csv python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19700982/
我需要对从对数正态分布生成的数据进行核密度估计。我一直在使用 gaussian_kde 并使用 Python 中的 matplotlib 绘制数据。 但是,一个问题是数据的偏差如此之大,以至于很难正确
我有一个 gaussian_kde.resample大批。我不知道它是否是一个 numpy 数组,以便我可以使用 numpy 函数。 我有数据0 I only want values within t
关于 scipy.stats.gaussian_kde 的文档说应该使用关键字 bw_method 来尝试不同的方法,但是当我尝试使用它时出现错误: TypeError: __init__() got
我正在尝试使用 the scipy.stats.gaussian_kde class将一些用经纬度信息收集的离散数据进行平滑处理,使其最终显示为有点类似于等高线图,其中高密度为峰,低密度为谷。 我很难
我有一系列要应用 KDE 的坐标,并且一直在使用 scipy.stats.gaussian_kde这样做。这里的问题是这个函数需要一组离散的坐标,然后它会执行密度估计。 当我希望记录我的数据时,这会导
我有两个 python gaussian_kde 对象,我想找到交集。有简单的方法吗? 请注意,这些函数没有很好地参数化,见图。 这是一种简单的方法(假设只有一个交集,但可以轻松修改范围内的所有交集,
我正在使用 SciPy 的 stats.gaussian_kde函数从 x,y 点的数据集生成核密度估计 (kde) 函数。 这是我的代码的简单 MWE: import numpy as np fro
在 python 3.7 中,我有一个 shape=(2, 34900) 的 numpy 数组。该数组是一个坐标列表,其中索引 0 表示 X 轴,索引 1 表示 y 轴。 当我使用 seaborn.k
我从两个叠加的正态分布中创建了一些数据,然后应用 sklearn.neighbors.KernelDensity 和 scipy.stats.gaussian_kde 来估计密度函数。但是,使用相同的
我正在尝试对可能不是正态分布的一系列分布生成基于 KDE 的 PDF 估计。 我喜欢 R 中 ggplot 的 stat_density 似乎可以识别频率中的每一个增量颠簸的方式,但无法通过 Pyth
我对Python非常陌生(具有纯.net背景),我正在使用this生成二维 kde 分析的教程。 生成一些随机二维数据: from scipy import stats def measure(n):
我是一名优秀的程序员,十分优秀!