|
Модераторы: Daevaorn |
|
Oltro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 4.5.2016 Репутация: нет Всего: нет |
Помогите пожалуйста.Недавно начал изучать python. Все перерыл в инете, не могу найти ответ.
Импортируется библиотека numpy. В данном случае надо найти есть ли число в массиве или в срезе. Если есть, то вывести его индекс на печать. Нужно получить индекс числа из массива/среза y. Просто индекс, как получить индекс?! Простая штука, но не могу найти ответ, помогите, плз. Во многих задачах это требуется и затык у меня конкретный с этим.
|
|||
|
||||
Romikgy |
|
|||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7325 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
Oltro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 4.5.2016 Репутация: нет Всего: нет |
Спасибо за ответ. Если вместо 5 поставить искомое число, например x[0], то получим нужный индекс.
Но теперь проблема в том что нужно делать цикл, а это очень сильно увеличит время расчетов, потому что таких циклов придется написать очень много в программе. Без циклов никак не возможно обойтись в данном случае, подскажите пожалуйста кто знает? Может есть другое решение? |
|||
|
||||
Romikgy |
|
|||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7325 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
Oltro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 4.5.2016 Репутация: нет Всего: нет |
Спасибо. По всякому пробовал, но не выходит никак правильно написать синтаксис. Напишите пожалуйста пример и станет сразу понятно. Будьте снисходительны к начинающему.
Если число X есть в массиве Y, то вывести его индекс в массиве Y. Если оно встречается 2 или N раз, то вывести все индексы.
|
|||
|
||||
Romikgy |
|
|||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7325 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
Oltro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 4.5.2016 Репутация: нет Всего: нет |
Уважаемый Romikgy! Хочу вам сказать большое спасибо за помощь, я написал все с циклами, и программа работает очень быстро. Намного быстрее чем со списками.
По последнему варианту почему то выдает выдает такую ошибку: AttributeError: 'numpy.ndarray' object has no attribute 'index' |
|||
|
||||
Romikgy |
|
|||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7325 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
Oltro |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 4.5.2016 Репутация: нет Всего: нет |
Все здорово! Спасибо! Для одномерного массива или среза вот так тогда будет по аналогии:
И на печать выводится следующее: (array([3], dtype=int32),) Теперь еще вопрос остался, как мне это значение, в данном случае число 3 присвоить какой-нибудь переменной, чтобы я мог это значение использовать в программе дальше, так как именно это значение нужно в дальнейших вычислениях? Так же как и из двумерного массива присвоить какой-нибудь переменной значение индекса? То есть вопрос такой: как полученное значение (индекс) внутри функции print присвоить переменной? С уважением, Олег |
|||
|
||||
Romikgy |
|
|||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7325 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
baldman88 |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 2 Всего: 7 |
Зачем все так усложнять? numpy.array имеет метод tolist().
Для одномерного массива:
Но, следует учитывать тот факт, что возвращается индекс первого вхождения. То есть, если в массиве несколько элементов с искомым значением, то вернется индекс первого найденого элемента. |
|||
|
||||
craneua |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 12.6.2016 Репутация: нет Всего: нет |
|
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |