0
假設您有一個2D numpy
數組,您已將其切片以提取其核心,,就好像您正在從較大的框架。Python:將二維數組映射到較大的二維數組上的一般規則
較大的幀:
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]])
我的問題:如果我想檢索b
原始數組a
中的每個值的位置,是有比這更好的方法嗎?
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'的內部框架中值的位置。 – FaCoffee
你得到的是a和b的元素爲扁平數組。那麼這些職位如何?他們可能像扁平陣列中的位置,但僅僅是因爲你的元素是0-19的數字。就我的理解而言,對於元素6而言,位置應該是'[1,1]'而不是數字6本身。你能否詳細說明你認爲元素的「位置」? – jotasi