我试图在我从文本文件中读取的格式('x','y','value')的 Nx3 数据中找到局部最大值和计数;'x' 和 'y' 形成一个均匀间隔的网格,'x','y' 的每个组合都有一个值,它看起来像这样:
3.0, -0.4, 56.94369888305664
3.0, -0.3, 56.97200012207031
3.0, -0.2, 56.77149963378906
3.0, -0.1, 56.41230010986328
3.0, 0, 55.8302001953125
3.0, 0.1, 55.81560134887695
3.0, 0.2, 55.600399017333984
3.0, 0.3, 55.51969909667969
3.0, 0.4, 55.18550109863281
3.2, -0.4, 56.26380157470703
3.2, -0.3, 56.228599548339844
...
问题是我尝试使用的图像代码(链接)要求数据采用不同的二维矩阵格式进行图像处理。这是代码的相关部分:
# Construct some test data
x, y = np.ogrid[-np.pi:np.pi:100j, -np.pi:np.pi:100j]
r = np.sin(np.exp((np.sin(x)**3 + np.cos(y)**2)))
# Find contours at a constant value of 0.8
contours = measure.find_contours(r, 0.8)
有人可以帮助将我的数据转换为所需的“网格”格式吗?
编辑:我终于选择了熊猫,但在一般情况下我发现选择的答案更好。这就是我所做的:
from pandas import read_csv
data=read_csv(filename, names=['x','y','values']).pivot(index='x', columns='y',
values='values')
在此之后data.values
以我想要的二维“图像形式”保持表格。
y -0.4 -0.3 -0.2 -0.1
x
3.0 86.9423 87.6398 87.5256 89.5779
3.2 76.9414 77.7743 78.8633 76.8955
3.4 71.4146 72.8257 71.7210 71.5232