テキストファイルから読み取った形式('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
...
問題は、私が使用しようとしている画像コード(リンク)では、画像処理のためにデータが異なる2Dマトリックス形式である必要があることです。これは、コードの関連部分です。
# 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
、私が望んでいたように、テーブルを2Dの「画像形式」で保持します。
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