Как найти индекс максимального элемента массива python


Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности

Public user contributions licensed under cc-wiki license with attribution required
Найдите индекс максимального встречающегося элемента с равной вероятностью
Учитывая непустой целочисленный массив, найдите индекс максимального встречающегося элемента с равной вероятностью.
Например, рассмотрим ввод: . Максимально встречающийся элемент 4 приходится на индексы 0, 4, 7 и 11. Решение должно возвращать любой из этих индексов с равной вероятностью. Если в массиве есть два максимально встречающихся элемента, решение должно учитывать первый встречающийся максимальный элемент.
На первый взгляд проблема кажется сложной, но имеет простое решение. Ниже приводится алгоритм:
- Сохраните количество каждого элемента ввода на карте.
- Пройдите карту и найдите первый максимально встречающийся элемент.
- Сгенерировать случайное число k между 1 и количеством максимально встречающихся элементов.
- Пройдите вход и верните индекс k’th появления максимально встречающегося элемента.
Ниже приведена реализация алгоритма на C++, Java и Python:
Как найти позицию максимального элемента в списке?
Сначала думал что-то с enumerate сделать, но в итоге отказался от этой затеи т.к. элементарно не пошло.

Андрей Белов @Andrey_Belov
Лучше использовать enumerate:
for i, v in enumerate(z): if v > max_v: max_v = v max_i = i
Вариант без цикла:
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

Для правильного вопроса надо знать половину ответа
Ошибка в алгоритме — s и b должны инициализироваться до начала цикла.
Ошибка в логике — максимальный элемент может быть и меньше 0. Лучше будет s = -maxint-1 если речь о целых числах
Определить позицию максимального элемента массива, состоящем из числовых значений
Определить позицию максимального и минимального элемента списка за 1 рекурсию
Ребят, вот такая вот задачка: определить позицию максимального и минимального эл-та списка за 1.
Найти позицию максимального элемента одномерного массива
Программу для нахождения максимального элемента написать смог, а как вывести его индекс? Помогите.
В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива
в одномерном массиве состоящем из N целых элементов вычислить 1. номер максимального элемента.
В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива
Здравствуйте!) Очень нужна помощь знающих людей! В одномерном массиве, состоящем из N целых.

В одномерном массиве, состоящем из n целых элементов, вычислить номер максимального элемента массива
Помогите пожалуйста новичку, дали задание а как делать не понятно, уже мозг кипит.. В одномерном.
245 / 55 / 6
Регистрация: 05.08.2010
Сообщений: 222
1 2 3 4 5 6
a=[1,3,6,8,3,23,6,8,5,3,45,6,8,5,3] max = a[0] pos = 0 for i in range(len(a)): if a[i]>max: max=a[i];pos=i print "max=",max,", pos=",pos
Добавлено через 39 секунд
если считать позиции от нуля, если от 1, то в полследней строчке
print "max=",max,", pos=",pos+1
Заблокирован
Functional Gods Here
1 2 3 4
from itertools import count, izip lst = [1,3,6,8,3,23,6,8,5,3,45,6,8,5,3] print max(izip(lst, count()))[1]
245 / 55 / 6
Регистрация: 05.08.2010
Сообщений: 222
согласен, но ты думаешь, если человек обращается с такой просьбой, то он поймет это? =) а так, да — я тоже за краткость и функциональные свойства питона =)
Добавлено через 2 минуты
И кстати —
1 2 3 4
Traceback (most recent call last): File "test3.py", line 11, in module> print max(izip(lst, count()))[1] TypeError: 'int' object is not callable
Добавлено через 10 минут
Сорри за загон =))) добавил к проге, где max уже определен был =)))
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
Определить позицию максимального элемента массива
1 2 3 4 5 6
>>> lst = [1, 3, 6, 8, 3, 23, 6, 8, 5, 3, 45, 6, 8, 5, 3] >>> print(lst.index(max(lst))) 10 >>> print(lst.index(max(lst)) + 1) 11 >>>
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
245 / 55 / 6
Регистрация: 05.08.2010
Сообщений: 222
Сообщение от accept 
print(lst.index(max(lst)))
=))) перемудрили чет мы =)
Регистрация: 16.09.2013
Сообщений: 7
Подскажите пожалуйста, а как узнать позицию максимального элемента для двумерного массива? Пробую сделать так:
print(Koef.index(Koef.max()))
1 2 3 4
Traceback (most recent call last): File "", line 1, in module> print(Koef.index(Koef.max())) AttributeError: 'numpy.ndarray' object has no attribute 'index'
Хотя вот для такого одномерного массива как писали выше работает:
Сообщение от accept 
>>> lst = [1, 3, 6, 8, 3, 23, 6, 8, 5, 3, 45, 6, 8, 5, 3]
>>> print(lst.index(max(lst)))
10
>>> print(lst.index(max(lst)) + 1)
11
>>>
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
bigsamq, нужно вот так:
1 2 3 4
>>> array = [1, 2, 4, 15, 25] >>> array.index(max(array)) 4 >>>
55 / 55 / 16
Регистрация: 25.03.2013
Сообщений: 178
tsar925, я так понял он имел ввиду для двухмерного массива(листа). или для двухмерного тоже подходит?
Регистрация: 16.09.2013
Сообщений: 7
Сообщение от Zarex 
я так понял он имел ввиду для двухмерного массива(листа). или для двухмерного тоже подходит?
Увы, не подходит. Возможно это имеет значение: двумерный массив создавался при помощи numpy, тип данных в нем float64, размеры в районе 200+ на 200+, сами элементы в диапазоне от 0.5 до 1
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
bigsamq,
1 2 3 4 5
import numpy array = numpy.array([[1, 2, 4, 5], [189, 862]]) max_array = max(array) print(max_array.index(max(max_array)))
Находит вложенный массив с максимальным значением и выводит индекс по которому располагается максимальный элемент. Так надо было?
Регистрация: 15.10.2015
Сообщений: 173
Как поменять один элемент массива на другой фрагмент с помощью numpy? Вот, допустим я хочу поменять элемент с индексом 1 — указан жирным шрифтом на элемент — см ниже — указан красным
[[0 1 1 1 0]
[0 1 0 1 0]
[0 1 1 1 0]
[0 0 1 1 0]
[0 1 0 1 0]]
Добавлено через 1 час 59 минут
Вроде бы есть идея, но не работает
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
group = np.array( [[[0,0,1,0,0], [0,1,0,1,0], [0,1,0,1,0], [0,1,0,1,0], [0,0,1,0,0]], [[0,0,1,0,0], [0,1,1,0,0], [0,0,1,0,0], [0,0,1,0,0], [0,1,1,1,0]], [[0,1,1,0,0], [0,1,0,1,0], [0,0,1,0,0], [0,1,0,0,0], [0,1,1,1,0]], [[0,1,1,1,0], [0,0,1,0,0], [0,1,1,1,0], [0,0,0,1,0], [0,1,1,1,0]], [[0,0,1,1,0], [0,1,0,1,0], [0,1,1,1,0], [0,0,0,1,0], [0,0,0,1,0]], [[0,1,1,1,0], [0,1,0,0,0], [0,1,1,1,0], [0,0,0,1,0], [0,1,1,1,0]], [[0,0,0,1,0], [0,0,1,0,0], [0,1,1,1,0], [0,1,0,1,0], [0,1,1,1,0]], [[0,1,1,1,0], [0,0,0,1,0], [0,0,1,0,0], [0,1,0,0,0], [0,1,0,0,0]], [[0,1,1,1,0], [0,1,0,1,0], [0,0,1,0,0], [0,1,0,1,0], [0,1,1,1,0]], [[0,1,1,1,0], [0,1,0,1,0], [0,1,1,1,0], [0,0,1,1,0], [0,1,0,1,0]]]) a1=[[1 1 0 1 0] [0 0 0 0 0] [0 0 1 1 1] [1 0 1 0 1] [0 0 0 1 0]] dataSetSize = group.shape[0] def tile(self, your_array, (your_database, n)): m=your_database[:] for i in range(n):#Организую временный список с индексами для присваивания к элементу массива. Хотя, в принципе это не столь целесообразно, т.к. передо мной массив, с индексами 0. 9 newarr=map(lambda m[i]:your_array, m).np.array#Хочу заменить i-ый элемент массива m на другой элемент - массив your_array return newarr#Хочу вернуть все 10 (0. 9) массивов с your_array в каждом месте, где произвожу замену print newarr s=tile(a1,(dataSetSize, 10))3#подставив значения уменя это неполучилось т.к. ошибка в функции tile на newarr=map((lambda m[i]:your_array, m).np.array
Добавлено через 9 минут
И мне нужно каждый из полученных массивов вернуть поочередно для выполнения вычитания другим массивом.
Допустим что
l=s-group
Я получу свои 10 вычтенных массивов?
Добавлено через 9 часов 50 минут
Решил вычитать просто элемент — массив your_array , который задается в функции tile массив из заданного элемента в your_database. Но python придирается на отсутствие long’ object has no attribute ‘__getitem__’ в yy=m.__getitem__(i)
1 2 3 4 5 6 7
def tile(your_array, your_database, n): m=your_database for i in range(n): yy=m.__getitem__(i) newarr=your_array - yy return newarr print newarr
Так эта функция тоже не работает:
1 2 3 4 5 6
def tile(your_array, your_database, n): m=your_database[:] for i in range(n): newarr=your_array - m[i] return newarr print newarr
