と値を行に単位変位(シフト)を使用して、これらの5つの2x2 2D配列を作成します。分割行からアレイを作成2Dアレイは、私はこのように2次元アレイを分割する単一変位
np.array([[1,2],[3,4]])
np.array([[4,5],[6,7]])
np.array([[7,8],[9,10]])
np.array([[10,11],[12,13]])
np.array([[13,14],[15,16]])
一般NXN 2D配列(正方形配列)から、可能な限り多くのMXM形状のY 2次元配列を作成します。
もっと正確に言えば、出力配列を作成するには、必ずしも行のすべての値から出力配列を作成する必要はありません。
例:私は2次元の2x2アレイにこの配列を分割する場合は、2D 8×8アレイから
は、1から64までの値で、8×8のアレイからの最初の行は、1から8までの行であると最初の出力2D 2x2配列はnp.array([[1,2]、[3,4]])になり、2番目の出力2D 2x2配列はnp.array([[4,5]、[6] 7]])...最後の出力2D配列まで、np.array([[61,62]、[63,64]])まで続きます。各2D 2x2アレイが行のすべての値で満たされていないことを確認します(正解)。そしてそれは、前の配列から次の配列への単一の変位(シフト)が存在する。
これを行うナンシーメソッドがありますか?
ここでMSeifertが答えました(How to split an 2D array, creating arrays from "row to row" values)。この質問のほぼ95%を解決する質問ですが、単位変位(シフト)部分を除きます。
したがって、4×4の2次元アレイの例から:
np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
代わりの(単一シフト/変位なし)これら四つの2×2の二次元アレイの作成:(
np.array([[1,2],[3,4]])
np.array([[5,6],[7,8]])
np.array([[9,10],[11,12]])
np.array([[13,14],[15,16]])
は、これらの5つの2x2の2次元アレイを作成しますユニタリシフト/変位あり):
np.array([[1,2],[3,4]])
np.array([[4,5],[6,7]])
np.array([[7,8],[9,10]])
np.array([[10,11],[12,13]])
np.array([[13,14],[15,16]])
そしてもちろん、それは一般的なca Y MXM正方形の2D配列を作成するために正方形のNXN 2D配列が与えられています。
例:60x60正方形の2次元配列から、Y MXM正方形の2次元配列(たとえば10x10)を作成します。
プラス:元の正方形の2D配列(この例では4x4の2D配列)のポイント数と、ミニ四角形の2次元配列(2x2の2次元配列)のポイント数をどのように関連付けるかを知る必要があります。例)。この場合、16ポイント(4×4 2D配列)が与えられた場合、5×2×2D配列(それぞれ4ポイント)を作成することが可能です。
この問題に述べたように不良設定です。任意の形状の入力配列に対してMxMに一般化することはできません。どのように元のサンプル配列から3x3配列を作成しますか?この例は、N = M^2であるためにのみ有効です。[[1 2 3] [4 5 6] [7 8 9]]、[[9 10 11] [12 13 14] [15 16 ??たとえば、10x10ブロックの60x60配列動作しません。 –
@AlexanderReynolds確かに私は一般化することができません、私はちょうど私が働くことができるスケール(ミニ配列)で元の2D配列が与えられている。私の例では、4x4の2D配列があれば、2x2の2D配列を生成することができます。 – Marco
@AlexanderReynolds ので... 2つの質問: 1)私は、アルゴリズムは、ミニ配列を生成してください、私はミニ2D配列を生成することができスケール(およびそのための2D配列を指定して、(数学的ルール)、、、知ることができますどのように引用された変位/シフトを伴う)? 2)上記の問題に関して、数学的ルールがあることを考慮すると、可能なスケール(ミニアレイの生成)を考えれば、このスケールで生成できるミニアレイの数はどれくらいですか? – Marco