1

こんにちは、タプルのリストをインデックスとして使用して、別の配列の値を使用したいと思います

コード :

import numpy as np

elevation_array = np.random.rand(5,5) #creates a random array 5 by 5

sort_idx = np.argsort(elevation_array, axis=None)

new_idx = zip(*np.unravel_index(sort_idx[::-1], elevation_array.shape))

for r, c in new_idx:
    r, c = [r, c]
for [x, y], elevation in np.ndenumerate(elevation_array):
    print elevation[r, c] # I will want to for other stuff here later on

私もこの方法で試しました:

for r, c in new_idx:
    r, c = [r, c]
    for elevation in np.ndenumerate(elevation_array):
        print elevation[r, c]

次の最初のエラーが発生します。

IndexError: 0-d arrays can only use a single () or a list of newaxes (and a single ...) as an index

私はpythonが初めてなので、どんな助けも素晴らしいでしょうし、説明は本当に役に立ちます

2番目にエラーが発生します:

tuple indices must be integers, not tuple

答え:

for r, c in new_idx:
    print elevation_array[r, c] 

私はそれを行う方法を知らなかったとは信じられないほど簡単です!:)

4

1 に答える 1

0

次のようにしても同じ結果が得られます。

print np.sort(elevation_array.flat)[::-1]
于 2013-08-04T12:57:00.857 に答える