2017-09-28 16 views
0

私は問題を解決するために探していますが、残念なことにインターネットを検索すると答えは出ませんでした。私は矩形のピクセルを持つデータの配列(20×100点)を持ち、x方向のピクセルは2m、y方向のピクセルは10mです。私の配列の総面積は200 m x 200 mで、軸の範囲は-100 m〜+ 100 mです。Python - numpyの配列を別のグリッドに変更する

このデータを、x方向とy方向のピクセルのサイズが1mの正規のサイズのグリッド(101×101ポイント)に再形成/再投影したいとします。新しい配列内のポイントは、古い配列の対応する値で塗りつぶさなければなりません。

以下の例のように小さなコードを追加しました。

import numpy as np 
import matplotlib.pyplot as plt 
x = np.arange(0,100,1) 
arr = np.tile(x, (20,1)) 
x_size = 2 
y_size = 10 
plt.imshow(arr, aspect = 'auto', extent = [-100,100,-100, 100]) 
+0

あなたは[分最大スケーラ](http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html)アプローチを使用しようとしましたか? – Tbaki

答えて

1

私はあなただけで適切なスケーリング係数を計算する必要があり、scipy.ndimage.zoom()でそれを行うだろう。

import numpy as np 
import scipy as sp 
import scipy.ndimage 

import scipy.ndimage 

# generate dummy input 
arr = np.arange(20 * 100).reshape((20, 100)) 

# resize 
resized = sp.ndimage.zoom(arr, [101/20, 101/100]) 
print(resized.shape) 
# prints: (101, 101) as expected 

plt.imshow(resized) 
plt.show() 
+0

"order"引数で遊んで、デフォルト以外のさまざまな補間を試してみてください。 – norok2

+0

これはまさに私が探していたものです。ありがとう! – kwant

関連する問題