0
2Dのnumpy
配列を持っていて、そのコアを抽出するためにスライスしたとします。大きなフレームから内側のフレームを切り取ったのと同じようにフレーム。Python:2Dアレイをより大きな2D配列にマッピングするための一般的なルール
大きなフレーム:
In[0]: import numpy
In[1]: a=numpy.array([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14],[15,16,17,18,19]])
In[2]: a
Out[2]:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
インナーフレーム:
In[3]: b=a[1:-1,1:-1]
Out[3]:
array([[ 6, 7, 8],
[11, 12, 13]])
私の質問:私は元の配列a
にb
に各値の位置を取得する場合、ありますこれ以上のアプローチがありますか?
c=numpy.ravel(a) #This will flatten my values in a, so to have a sequential order
d=numpy.ravel(b) #Each element in b will tell me what its corresponding position in a was
私は私はあなたがあなたのプログラムが何をしたいのか理解していません。あなたは何を出力として持ちたいのですか?あなたの質問の終わりのリスティングは、本当に 'a'の' b'要素の位置を計算しませんか、それとも私はそれを見ることができませんか? – jotasi
私の出力は、 'a'の内部フレームの値の位置を含む1D配列またはリストです。 – FaCoffee
あなたが得るのは、平坦な配列としてのaとbの要素です。それではポジションはどうですか?それらは平坦な配列内の位置のようなものかもしれませんが、あなたの要素が0〜19の数字であるためです。私の理解のために、位置は要素6では '[1,1]'のようになり、番号6ではなくなります。あなたは要素の「位置」を考慮して何を精緻化できますか? – jotasi