У меня есть (как мне кажется) довольно четкий пример с бесформенным аргументом, где он дает странные результаты.Если я создаю пример массива символов:
letters = np.array([['b','a','c'],
['c','a','b'],
['b','c','a']]).astype(str)
, то я ищу сортировку по строкам (и сохранить последовательность сортировки для другого использования позже).Выходные данные, которые я получаю из argsort, равны
sort_seq = np.argsort(letters, axis=1)
sort_seq
array([[1, 0, 2],
[1, 2, 0],
[2, 0, 1]])
Кажется, это правильно для первого ряда, но не для остальных.Если я использую его для восстановления массива, то получаю:
output = np.full_like(letters, '')
np.put_along_axis(output, sort_seq, letters,axis=1)
output
, что дает
array([['a', 'b', 'c'],
['b', 'c', 'a'],
['c', 'a', 'b']], dtype='<U1')
Если я смотрю здесь и на других сайтах, я вижу, что argsorting для многомерных массивоввременами не всегда работал хорошо.Но этот пример кажется очень похожим на тот, что приведен в пустой документации - наверняка, он должен работать в этом случае?
Спасибо за любую помощь!