| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Общие вопросы > Получить индекс значения в массиве |
| Автор: Oltro 29.5.2016, 13:41 | ||
| Помогите пожалуйста.Недавно начал изучать python. Все перерыл в инете, не могу найти ответ. Импортируется библиотека numpy. В данном случае надо найти есть ли число в массиве или в срезе. Если есть, то вывести его индекс на печать. Нужно получить индекс числа из массива/среза y. Просто индекс, как получить индекс?! Простая штука, но не могу найти ответ, помогите, плз. Во многих задачах это требуется и затык у меня конкретный с этим.
|
| Автор: Romikgy 29.5.2016, 22:58 | ||
|
| Автор: Oltro 30.5.2016, 07:38 |
| Спасибо за ответ. Если вместо 5 поставить искомое число, например x[0], то получим нужный индекс. Но теперь проблема в том что нужно делать цикл, а это очень сильно увеличит время расчетов, потому что таких циклов придется написать очень много в программе. Без циклов никак не возможно обойтись в данном случае, подскажите пожалуйста кто знает? Может есть другое решение? |
| Автор: Romikgy 30.5.2016, 09:20 | ||
|
| Автор: Oltro 30.5.2016, 10:41 | ||
| Спасибо. По всякому пробовал, но не выходит никак правильно написать синтаксис. Напишите пожалуйста пример и станет сразу понятно. Будьте снисходительны к начинающему. Если число X есть в массиве Y, то вывести его индекс в массиве Y. Если оно встречается 2 или N раз, то вывести все индексы.
|
| Автор: Romikgy 30.5.2016, 14:00 | ||
|
| Автор: Oltro 30.5.2016, 15:49 |
| Уважаемый Romikgy! Хочу вам сказать большое спасибо за помощь, я написал все с циклами, и программа работает очень быстро. По последнему варианту почему то выдает выдает такую ошибку: AttributeError: 'numpy.ndarray' object has no attribute 'index' |
| Автор: Romikgy 30.5.2016, 21:22 | ||
|
| Автор: Oltro 31.5.2016, 12:28 | ||
Все здорово!
И на печать выводится следующее: (array([3], dtype=int32),) Теперь еще вопрос остался, как мне это значение, в данном случае число 3 присвоить какой-нибудь переменной, чтобы я мог это значение использовать в программе дальше, так как именно это значение нужно в дальнейших вычислениях? Так же как и из двумерного массива присвоить какой-нибудь переменной значение индекса? То есть вопрос такой: как полученное значение (индекс) внутри функции print присвоить переменной? С уважением, Олег |
| Автор: Romikgy 31.5.2016, 21:48 | ||
|
| Автор: baldman88 31.5.2016, 22:33 | ||
| Зачем все так усложнять? numpy.array имеет метод tolist(). Для одномерного массива:
Но, следует учитывать тот факт, что возвращается индекс первого вхождения. То есть, если в массиве несколько элементов с искомым значением, то вернется индекс первого найденого элемента. |
| Автор: craneua 12.6.2016, 18:24 | ||
|