Форум сайта python.su
Добрый день,
Подскажите пожалуйста как отсортировать по убыванию\возрастанию массив такого типа.
При попытке array.sort() или array.revers() получаю следю ошибку
AttributeError: ‘numpy.ndarray’ object has no attribute ‘reverse’
Этот массив я получаю от функции crr = cv2.matchTemplate(arr,brr, cv.CV_TM_CCORR)
дальше делаю решейп drr = np.reshape(crr, crr.shape*crr.shape)
задача упорядочить drr массив по убыванию. Не преобразовывая в другой тип. Пробовал функцию argsort() но почему то не работает как надо, может что то делаю не так.
Заранее спасибо.
Офлайн
Свой код приведите
>>> import numpy as np >>> v=np.array([1,3,2]) >>> v.sort() >>> v array([1, 2, 3])
Офлайн
doza_andпробовал просто argsort(drr), не работает, дело в том что массив crr это матрица значений, а индексы координаты, при решейпе два индекса (позиция в матрице) преобразуются в один плоский, с возможностью обратного преобразования.
Свой код приведите
Отредактировано birst (Фев. 15, 2013 09:33:45)
Офлайн
doza_andТ.е. приведите НЕБОЛЬШОЙ участок РАБОТАЮЩЕГО кода который иллюстрирует вашу проблему.
Свой код приведите
birstДобавлю что непонятно что вы хотите получить:
Не преобразовывая в другой тип
birst
если использовать простой сорт как вы говорите упорядовачиваются только значения
[[1,2],[3,4]]
import numpy as np v=np.array([[1,3,2],[1,3,2]]) vv=v.ravel() vv.sort() print v >>> [[1 1 2] [2 3 3]]
Отредактировано doza_and (Фев. 15, 2013 18:00:02)
Офлайн