8Π”Π΅ΠΊ

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс: Поиск индСкса ΠΏΠΎ адрСсу. МгновСнно.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Поиск индСкса ΠΏΠΎ адрСсу. МгновСнно.

Казалось Π±Ρ‹, Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ° ΠΈ ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΈ соврСмСнного ΠΌΠΈΡ€Π° вытСснили Π΅Π³ΠΎ навсСгда ΠΈΠ· ΠΎΠ±ΠΈΡ…ΠΎΠ΄Π°. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ стал Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌ. Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ. ΠœΠ½ΠΎΠ³ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ частныС транспортныС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π½ΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ с доставкой ΠΊΠΎΡ€ΠΎΠ±ΠΎΠΊ, посылок, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ ΠΈ писСм. А ΠΎΠ½ стал Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ старинного порядка, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π½Π°ΡŽΡ‚ лишь Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅ государствСнныС слуТащиС Π΄Π° ΠΌΡƒΠ½ΠΈΡ†ΠΈΠΏΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‡ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠΈ. НСт, Π΅Π³ΠΎ помнят ваши Π±Π°Π±ΡƒΡˆΠΊΠΈ ΠΈ Π΄Π΅Π΄ΡƒΡˆΠΊΠΈ навСрняка! Π£Π·Π½Π°Π»ΠΈ? Π”Π°, это ΠΎΠ½, ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ индСкс!

ΠŸΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ индСкс, ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Ρƒ слов истории

Π’ Π±Ρ‹Π²ΡˆΠ΅ΠΌ Π‘Π‘Π‘Π  Π½Π°ΠΉΡ‚ΠΈ индСкс Π±Ρ‹Π»ΠΎ нСслоТно. Достаточно Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ Π² ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ΅ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ, вСсящим ΠΎΠΊΠΎΠ»ΠΎ 2-Ρ… ΠΊΠ³, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ индСксов. А Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΡ‰Π΅ Π±Ρ‹Π»ΠΎ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ индСкс Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Ρ‚Π°Π»ΡŒΠΎΠ½Π°. МногиС ΠΈΠ· этих ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π±ΡƒΠΊΠ² ΠΈ Ρ†ΠΈΡ„Ρ€ (Π½Π° Ρ‚ΠΎ врСмя!) ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠ½ΠΈΠ»ΠΈ Π½Π°ΠΈΠ·ΡƒΡΡ‚ΡŒ! Π§Π΅ΠΌ ΠΆΠ΅ стали Ρ‚ΠΎΠ³Π΄Π° ΠΈΠ½Π΄Π΅ΠΊΡΡ‹ России ΠΈ сосСдних рСспублик для ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΆΠΈΡ‚Π΅Π»Π΅ΠΉ? ΠœΠΎΡ‰Π½ΠΎΠΉ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ письмо ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΉΠ΄Π΅Ρ‚ адрСсата. ΠŸΡ€ΠΈ этом быстро ΠΈ Π»Π΅Π³ΠΊΠΎ!

ΠžΠ±Ρ‰Π΅Π½ΠΈΠ΅ посрСдством письма Π² Ρ‚Π΅ Π³ΠΎΠ΄Ρ‹ Π±Ρ‹Π»ΠΎ дСлом… ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΌ. А Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ индСкса Π² ΠΎΠ±ΠΈΡ…ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ сортировку коррСспондСнции. Π­Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π΅Π΅ ΠΈ сСйчас, ΠΊΠΎΠ³Π΄Π° этим заняты ΠΌΠ°ΡˆΠΈΠ½Ρ‹!

ΠŸΡ€ΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ ΠΈΠ½Π΄Π΅ΠΊΡΡ‹ ΠœΠΎΡΠΊΠ²Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π³ΠΎΡ€ΠΎΠ΄ΠΎΠ² Π² ΠΏΡ€ΠΎΡˆΠ»Ρ‹Π΅ Π³ΠΎΠ΄Ρ‹, ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈ сСйчас. Π‘Π΅Π· индСкса Π½Π° ΠΏΠΎΡ‡Ρ‚Π΅ Π½Π΅ ΠΏΡ€ΠΈΠΌΡƒΡ‚ письмо, посылку ΠΈΠ»ΠΈ Π±Π°Π½Π΄Π΅Ρ€ΠΎΠ»ΡŒ, Π½Π΅ смогут ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ подписку Π½Π° Π³Π°Π·Π΅Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΆΡƒΡ€Π½Π°Π». ΠŸΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ отдСлСния ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ дСсятки услуг, Π° индСкс являСтся Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ оформлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Быстро ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ индСкс ΠΏΠΎ адрСсу

Π’Ρ‹, ΠΊΠ°ΠΊ ΠΈ ваши ΠΏΡ€Π°Π±Π°Π±ΡƒΡˆΠΊΠΈ, всС Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡŽΠ±ΠΈΡ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ письма? Π—Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ посылки стоит ΠΊΠΎΠΏΠ΅ΠΉΠΊΠΈ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π½Ρ‹Π½Π΅ΡˆΠ½ΠΈΠΌΠΈ Ρ†Π΅Π½Π°ΠΌΠΈ Π½Π° услуги Ρƒ частных ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ? ВсС ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚Π΅ Π² ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… отдСлСниях ΠΈ Ρ‚Π°ΠΌ ΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ услугами Π±Π°Π½ΠΊΠ°? Π’ΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ индСкса!

Но, ΡΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ, часты случаи, ΠΊΠΎΠ³Π΄Π° ΡƒΠ·Π½Π°Ρ‚ΡŒ индСкс ΠΏΠΎ адрСсу ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅. А Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ посылку, Π±Π°Π½Π΄Π΅Ρ€ΠΎΠ»ΡŒ ΠΈΠ»ΠΈ письмо Π΄ΠΎΠΌΠ°, ΠΈΠ·Π±Π°Π²ΠΈΠ² сСбя ΠΎΡ‚ нСобходимости Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ отдСлСния? Π”ΠΎΠΌΠ°, Π΄Π° Π΅Ρ‰Π΅ Π² ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½Ρ‹Ρ… условиях ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠΎ ΡƒΠ»ΠΈΡ†Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ!

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ индСкс ΠΏΠΎ адрСсу Ρ нашСй ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ! Наш ΠΏΠΎΡ€Ρ‚Π°Π» прСдоставляСт Ρ‚Π°ΠΊΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ, освободив вас ΠΎΡ‚ нСобходимости Ρ€Π°Π½Π΅Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· Π΄ΠΎΠΌΡƒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ эту ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΠΏΠΎΡ‡Ρ‚Π΅. ЛСгкая Ρ„ΠΎΡ€ΠΌΠ° для заполнСния попросит ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π³ΠΎΡ€ΠΎΠ΄, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡƒΠ»ΠΈΡ†Ρ‹ ΠΈ Π΄ΠΎΠΌ. И Π²ΠΎΡ‚, Π·Π°Π²Π΅Ρ‚Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ! ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ!

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚: Ρ‚Π΅ΠΌ организациям ΠΈ частным Π»ΠΈΡ†Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ коррСспондСнции, ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ индСксы. Ѐинский Π™ΠΎΡƒΠ»ΡƒΠΏΡƒΠΊΠΊΠΈ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ€Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ канадский Π‘Π°Π½Ρ‚Π° ΠšΠ»Π°ΡƒΡ, ΠΈΠΌΠ΅ΡŽΡ‚ собствСнныС. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ послСднСму. Он ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚! И Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ индСкс β€” SANTA CLAUS!


Если Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π½Π° сайтС ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Π΅Ρ‘
ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅: Ctrl + Enter ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ сюда.

python β€” Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс строки, Π³Π΄Π΅ находится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅?

Вопрос Π·Π°Π΄Π°Π½

11 мСсяцСв Π½Π°Π·Π°Π΄

Π˜Π·ΠΌΠ΅Π½Ρ‘Π½ 11 мСсяцСв Π½Π°Π·Π°Π΄

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π½ 4k Ρ€Π°Π·

Π£ мСня Π΅ΡΡ‚ΡŒ массив. Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс строки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится искомоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠΠ°Ρ‡Π°Π»ΠΎΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΠ‘ΡƒΠΌΠΌΠ°
2020-01-012020-03-1575-961.4
2020-03-162020-03-1610.2
2020-03-172020-03-2913-86.1
2020-03-302020-03-3011. 0
2020-03-312020-04-012-6.8
2020-04-022020-10-061882287.6
2020-10-072020-10-137-18.9
2020-10-142020-10-1854.2
2020-10-192020-10-213-3.8
2020-10-222020-10-2211.9
2020-10-232020-11-0716-114.3
2020-11-082020-11-1033.5
2020-11-112020-12-3151-962.4

Π― ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡΡŒ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса. НапримСр Ρ…ΠΎΡ‡Ρƒ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ индСкс ΠΈΠΌΠ΅Π΅Ρ‚ строка, Π³Π΄Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«Π‘ΡƒΠΌΠΌΠ°Β» Ρ€Π°Π²Π½ΠΎΠ΅ 2287.6. Оно Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΌΠ½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ 5.

ind = df[df['Π‘ΡƒΠΌΠΌΠ°'] == 2287.6].index.values.astype(int)

Но ΠΌΠ½Π΅ возвращаСтся просто пустой список: [].

Π’ Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°? Π’Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ находится Π½Π° этой ΠΆΠ΅ строкС?

  • python
  • pandas
  • dataframe
  • ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°-Π΄Π°Π½Π½Ρ‹Ρ…

6

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сначала ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ столбцы ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ поиск:

df["Π‘ΡƒΠΌΠΌΠ°"] = pd. to_numeric(df["Π‘ΡƒΠΌΠΌΠ°"], errors="coerce")
idx = df[df['Π‘ΡƒΠΌΠΌΠ°'] == 2287.6].index
print(idx.to_list())
# [5]

ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌΡƒ индСксу ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ столбца β€” возвращаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° pandas.Series:

In [89]: print(df.loc[idx, "Начало"])
5    2020-04-02
Name: Начало, dtype: object

Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ скалярноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

In [91]: print(df.at[idx[0], "Начало"])
# 2020-04-02

PS ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ докумСнтация ΠΎΠ± индСксировании ΠΈ доступС ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² Pandas

Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΈΠ»ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅

РСгистрация Ρ‡Π΅Ρ€Π΅Π· Google

РСгистрация Ρ‡Π΅Ρ€Π΅Π· Facebook

РСгистрация Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ‡Ρ‚Ρƒ

ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π±Π΅Π· рСгистрации

ΠŸΠΎΡ‡Ρ‚Π°

НСобходима, Π½ΠΎ Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ показываСтся

ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π±Π΅Π· рСгистрации

ΠŸΠΎΡ‡Ρ‚Π°

НСобходима, Π½ΠΎ Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ показываСтся

НаТимая Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Β», Π²Ρ‹ ΡΠΎΠ³Π»Π°ΡˆΠ°Π΅Ρ‚Π΅ΡΡŒ с нашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ соглашСниСм, ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ ΠΎ ΠΊΡƒΠΊΠΈ

python β€” поиск индСкса элСмСнта Π² спискС

Поиск индСкса элСмСнта ΠΏΠΎ списку, содСрТащСму Π΅Π³ΠΎ Π² Python

Для списка ["foo", "bar", "baz"] ΠΈ элСмСнта Π² спискС "bar" , ΠΊΠ°ΠΊΠΎΠΉ самый чистый способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ индСкс (1) Π² Python?

Ну Π΄Π°, Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ index, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния:

 >>> l = ["foo", "bar", "baz"]
>>> l. index('Π±Π°Ρ€')
1
 

Π•ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ:

  • Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ отсутствуСт Π² спискС, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ValueError
  • Ссли Π² спискС присутствуСт Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ индСкс Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…

НСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ ValueError .

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ½ΠΎΠ³ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ опрСдСлСния, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ этому:

def index(a_list, value): ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ: Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ a_list.index (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) ΠΊΡ€ΠΎΠΌΠ΅ ValueError: Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ НСт

И ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ это Ρ‚Π°ΠΊ:

 >>> print(index(l, 'quux'))
Никто
>>> print(index(l, 'bar'))
1
 

И нСдостатком этого являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ вас, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, являСтся Π»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅ None:

 result = index(a_list, value)
Ссли Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ None:
    ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ_Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ (Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚)
 

Π‘ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния Π² спискС

Если Π±Ρ‹ Ρƒ вас ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ большС Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ, Π²Ρ‹ Π±Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с list. index :

 >>> l.append('bar')
>>> Π»
['Ρ„Ρƒ', 'Π±Π°Ρ€', 'Π±Π°Π·', 'Π±Π°Ρ€']
>>> l.index('bar') # Π½ΠΈΡ‡Π΅Π³ΠΎ Π² индСксС 3?
1
 

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ индСксы Π² Π²ΠΈΠ΄Π΅ списка:

 >>> [индСкс для индСкса, v в enumerate(l), Ссли v == 'bar']
[1, 3]
>
>> [индСкс для индСкса, v в enumerate(l), Ссли v == 'boink'] []

Если Ρƒ вас Π½Π΅Ρ‚ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ логичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈΠ»ΠΈ просто Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

 indexes = [индСкс для индСкса, v в enumerate(l), Ссли v == 'boink']
для индСкса Π² индСксах:
    Π΄Π΅Π»Π°Ρ‚ΡŒ_Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ (индСкс)
 

Π›ΡƒΡ‡ΡˆΠ°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pandas

Если Ρƒ вас Π΅ΡΡ‚ΡŒ pandas, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Series:

 >>> import pandas as pd
>>> сСрия = pd.Series(l)
>>> сСрия
0 Ρ„Ρƒ
1 Π±Π°Ρ€
2 Π±Π°Π·
3 Π±Π°Ρ€
Ρ‚ΠΈΠΏ: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
 

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сравнСния Π²Π΅Ρ€Π½Π΅Ρ‚ ΡΠ΅Ρ€ΠΈΡŽ логичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

 >>> series == 'bar'
0 Π›ΠΎΠΆΡŒ
1 ΠΏΡ€Π°Π²Π΄Π°
2 Π›ΠΎΠΆΡŒ
3 ΠŸΡ€Π°Π²Π΄Π°
Ρ‚ΠΈΠΏ: логичСский
 

ΠŸΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ эту ΡΠ΅Ρ€ΠΈΡŽ логичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΡΠ΅Ρ€ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ индСкса, ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ элСмСнты:

 >>> series[series == 'bar']
1 Π±Π°Ρ€
3 Π±Π°Ρ€
Ρ‚ΠΈΠΏ: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
 

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ индСксы, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ index Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ряд Ρ†Π΅Π»Ρ‹Ρ… чисСл:

 >>> series[series == 'bar']. index
Int64Index([1, 3], dtype='int64')
 

И Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π² спискС ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅, просто ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΈΡ… конструктору:

 >>> list(series[series == 'bar'].index)
[1, 3]
 

Π”Π°, Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ списка с enumerate, Π½ΠΎ, Π½Π° ΠΌΠΎΠΉ взгляд, это Π½Π΅ Ρ‚Π°ΠΊ элСгантно β€” Π²Ρ‹ выполняСтС тСсты Π½Π° равСнство Π² Python, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ встроСнному ΠΊΠΎΠ΄Ρƒ, написанному Π½Π° C, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ это:

 >> > [i для i, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² enumerate(l), Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ == 'bar']
[1, 3]
 

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° XY ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΎ вашСй ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΠΎ вашСй Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅.

Как Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ индСкс для элСмСнта Π² спискС?

Если Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, какая Π²Π°ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°, Π³Π΄Π΅ ΠΎΠ½ΠΎ находится Π² спискС?

Если значСния Π½Π΅Ρ‚, ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚

ValueError довольно многословСн, ΠΈ я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ этого ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ.

Π’ любом случаС я ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽ список, поэтому я ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, получая индСкс с пСрСчислСниСм.

Если Π²Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π²Π°ΠΌ, вСроятно, слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pandas, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ элСгантныС инструмСнты, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ Π½Π° чистом Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΏΠΎΠΊΠ°Π·Π°Π».

Π― Π½Π΅ помню, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ½Π΅ самому понадобился list.index . Однако я просмотрСл ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Python ΠΈ нашСл для Π½Π΅Π΅ нСсколько ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π’ idlelib для графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π° тСкста сущСствуСт мноТСство ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ для поиска ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ автоматичСски Ρ€Π΅Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов Π² Π½Π΅ΠΌ посрСдством мСтапрограммирования.

Π’ Lib/mailbox.py ΠΎΠ½, каТСтся, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ упорядочСнноС сопоставлСниС:

 key_list[key_list.index(старый)] = Π½ΠΎΠ²Ρ‹ΠΉ
 

ΠΈ

 del key_list[key_list.index(key)]
 

Π’ Lib/http/cookiejar.py, каТСтся, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ мСсяца:

 mon = MONTHS_LOWER. index(mon.lower())+1
 

Π’ Lib/tarfile.py Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ distutils для получСния Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π΄ΠΎ элСмСнта:

members =members[:members.index(tarinfo)]
 

Π’ Lib/pickletools.py:

 numtopop = before.index(markobject)
 

Π§Ρ‚ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρƒ этих Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования, Ρ‚Π°ΠΊ это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ со списками ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·-Π·Π° O(n) Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ поиска для list.index ), ΠΈ ΠΎΠ½ΠΈ Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ синтаксичСском Π°Π½Π°Π»ΠΈΠ·Π΅ (ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС Π² случаС бСздСйствия).

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ для Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования, ΠΎΠ½ΠΈ довольно Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹. Если Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈΡ‰Π΅Ρ‚Π΅ этот ΠΎΡ‚Π²Π΅Ρ‚, спроситС сСбя, являСтся Π»ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ прямым использованиСм инструмСнтов, прСдоставляСмых языком, для вашСго Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования.

python β€” ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ индСкса Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ максимального ΠΈΠ»ΠΈ минимального элСмСнта с использованиСм max()/min() Π² спискС

спросил

ИзмСнСно 2 мСсяца Π½Π°Π·Π°Π΄

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΎ 1,4 ΠΌΠ»Π½ Ρ€Π°Π·

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Python max ΠΈ min Π² списках для минимаксного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΈ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ΅Π½ индСкс значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ max() ΠΈΠ»ΠΈ min() . Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Ρ…ΠΎΠ΄ Π΄Π°Π» максимальноС (Π½Π° Ρ…ΠΎΠ΄Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°) ΠΈΠ»ΠΈ минимальноС (Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

 для i в диапазонС (9):
    new_board = current_board.new_board_with_move([i / 3, i % 3], ΠΈΠ³Ρ€ΠΎΠΊ)
    Ссли новая_доска:
        temp = min_max (новая_доска, Π³Π»ΡƒΠ±ΠΈΠ½Π° + 1, Π° Π½Π΅ is_min_level)
        значСния.Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ(Ρ‚Π΅ΠΌΠΏ)
Ссли is_min_level:
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ (значСния)
Π΅Ρ‰Π΅:
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ максимум (значСния)
 

МнС Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ фактичСский индСкс минимального ΠΈΠ»ΠΈ максимального значСния, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

  • ΠΏΠΈΡ‚ΠΎΠ½
  • список
  • макс.
  • ΠΌΠΈΠ½.

1

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ список ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ = [3,6,1,5] ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ индСкс наимСньшСго элСмСнта, Ρ‚. Π΅. Π² Π΄Π°Π½Π½ΠΎΠΌ случаС index_min = 2 .

Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с itemgetter() , прСдставлСнного Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ…, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ вмСсто Π½Π΅Π³ΠΎ

 index_min = min(range(len(values)), key=values. __getitem__)
 

, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ трСбуСтся ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для пСрСчислСния , ΠΈ это всСгда быстрСС (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½ΠΈΠΆΠ΅), Ρ‡Π΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с использованиСм элСмСнтгСттСр() .

Если Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π΅Π»ΠΎ с массивами numpy ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС numpy Π² качСствС зависимости, рассмотритС Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования

 import numpy as np
index_min = np.argmin (значСния)
 

Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ быстрСС, Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΊ чистому списку Python, Ссли:

  • ΠΎΠ½ большС, Ρ‡Π΅ΠΌ нСсколько элСмСнтов (ΠΎΠΊΠΎΠ»ΠΎ 2**4 элСмСнтов Π½Π° ΠΌΠΎΠ΅ΠΉ машинС)
  • Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС копию памяти ΠΈΠ· чистого списка Π² массив numpy

, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ этот тСст:

Π― Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» тСст Π½Π° своСй машинС с Python 2.7 для Π΄Π²ΡƒΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π²Ρ‹ΡˆΠ΅ (синий: чистый python, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅) (красный, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ numpy) ΠΈ для стандартного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° основС itemgetter() (Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ, эталонноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ). Π’ΠΎΡ‚ ΠΆΠ΅ тСст с Python 3.5 ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² случаС с Python 2.7, прСдставлСнном Π²Ρ‹ΡˆΠ΅

. 6

 Ссли is_min_level:
    Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния.index (ΠΌΠΈΠ½ (значСния))
Π΅Ρ‰Π΅:
    Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния.index (макс. (значСния))
 

8

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ/ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ссли Π²Ρ‹ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΡƒΠ΅Ρ‚Π΅ элСмСнты Π² спискС, Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΌΠΈΠ½/макс Π½Π° исходных значСниях списка. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ:

 ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°
min_index, min_value = min (пСрСчислСниС (значСния), ΠΊΠ»ΡŽΡ‡ = operator.itemgetter (1))
max_index, max_value = max (пСрСчислСниС (значСния), ΠΊΠ»ΡŽΡ‡ = operator.itemgetter (1))
 

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, список Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½. (ΠΈΠ»ΠΈ макс.).

2

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ индСкс max Π² спискС чисСл (Ρ‡Ρ‚ΠΎ каТСтся вашим случаСм), я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ numpy:

 import numpy as np
ind = np. argmax (мой список)
 

1

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ простым Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² массив ΠΏΠ°Ρ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ индСксов ΠΈ Π²Π·ΡΡ‚ΡŒ ΠΈΠ· Π½Π΅Π³ΠΎ максимальноС/минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ даст наибольший/наимСньший индСкс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ максимальноС/минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Ρ‚. Π΅. ΠΏΠ°Ρ€Ρ‹ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ, сначала сравнивая ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт, Π° Π·Π°Ρ‚Π΅ΠΌ сравнивая Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт, Ссли ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅Ρ‚ нСобходимости ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ массив, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ min/max ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ = [3,4,5]
(m,i) = max((v,i) для i,v Π² пСрСчислСнии(значСния))
Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ (ΠΌ, я) # (5, 2)
 

0

 ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ = [1,1412, 4,3453, 5,8709, 0,1314]
seq.index (ΠΌΠΈΠ½ (seq))
 

Π”Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ°.

0

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ список Π² массив numpy ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

 a = np. array(list)
idx = np.argmax (Π°)
 

0

МСня это Ρ‚ΠΎΠΆΠ΅ заинтСрСсовало, ΠΈ я сравнил Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ perfplot (ΠΌΠΎΠΉ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚).

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ

 min(range(len(a)), key=a.__getitem__)
 

β€” самый быстрый ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… списков.

(Π’ ΠΏΡ€Π΅ΠΆΠ½ΠΈΡ… вСрсиях np.argmin использовался для получСния ΠΏΠΈΡ€ΠΎΠ³Π°.)


Код для создания Π³Ρ€Π°Ρ„ΠΈΠΊΠ°:

 import numpy as np
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°
ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Ρ„ΠΏΠ»ΠΎΡ‚
ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ min_enumerate (Π°):
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠΈΠ½ (пСрСчислСниС (Π°), ΠΊΠ»ΡŽΡ‡ = лямбда Ρ…: Ρ… [1]) [0]
ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ min_enumerate_itemgetter (Π°):
    min_index, min_value = min(enumerate(a), key=operator.itemgetter(1))
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠΈΠ½_индСкс
Π΄Π΅Ρ„ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ (Π°):
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠΈΠ½ (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Π΄Π»ΠΈΠ½Π° (Π°)), ΠΊΠ»ΡŽΡ‡ = a.__getitem__)
Π·Π°Ρ‰ΠΈΡ‚Π° np_argmin (Π°):
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ np.argmin (Π°)
Π± = perfplot.bench (
    setup=лямбда n: np.random.rand(n). tolist(),
    ядра=[
        ΠΌΠΈΠ½_пСрСчислСниС,
        min_enumerate_itemgetter,
        ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ,
        np_argΠΌΠΈΠ½,
    ],
    n_range=[2**k для k в диапазонС (15)],
)
Π±.ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ()
 

3

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π½ΠΎ я Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈ всС индСксы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… появляСтся ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ.

 minval = min(mylist)
ind = [i для i, v Π² пСрСчислСнии (mylist), Ссли v == minval]
 

Π­Ρ‚ΠΎ Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ список, Π½ΠΎ всС Π΅Ρ‰Π΅ довольно быстро. Однако это Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ поиск индСкса ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ столкновСния с ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠœΡΡ‚Ρ‚Π° АндСрсона, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ всС ΠΎΠ½ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ это.

4

ПослС получСния ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

 max_val = max(list)
index_max = список.index(max_val)
 

Π“ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массив numpy ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ argmax()

 a=np.array([1,2,3])
 Π± = np.argmax (Π°)
 ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π±) # 2
 

0

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ Pandas Π΅ΡΡ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ мягкоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅:

df[column].idxmax()

Π­Ρ‚ΠΎ просто Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ enumerate() ΠΈ max() ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° key Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ max() ΠΈ простоС лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

 theList = [1, 5, 10]
maxIndex, maxValue = max(enumerate(theList), key=lambda v: v[1])
# => (2, 10)
 

Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… для max() говорится, Ρ‡Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ key ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ функция list.sort() . Π’Π°ΠΊΠΆΠ΅ см. Ρ€Π°Π·Π΄Π΅Π» Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°.

Π’ΠΎ ΠΆΠ΅ самоС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для min() . ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ максимальноС/минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

2

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ модуля numpy numpy. where

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ n
Ρ… = n.массив ((3,3,4,7,4,56,65,1))
 

Для индСкса минимального значСния:

 idx = n.where(x==x.min())[0]
 

Для индСкса максимального значСния:

 idx = n.where(x==x.max())[0]
 

На самом Π΄Π΅Π»Π΅ эта функция Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΡ‰Π½Π΅Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ всС Π²ΠΈΠ΄Ρ‹ логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Для индСкса значСния ΠΎΡ‚ 3 Π΄ΠΎ 60:

 idx = n.where((x>3)&(x<60))[0]
IDX
массив([2, 3, 4, 5])
Ρ… [ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€]
массив([ 4, 7, 4, 56])
 

4

Допустим, Ρƒ вас Π΅ΡΡ‚ΡŒ список, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 a = [9,8,7]
 

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой довольно ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Π΅ способы получСния ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом ΠΈ Π΅Π³ΠΎ индСксом. Оба Π±Π΅Ρ€ΡƒΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. МнС большС нравится ΠΌΠ΅Ρ‚ΠΎΠ΄ zip, Π½ΠΎ это Π½Π° ΠΌΠΎΠΉ вкус.

ΠΌΠ΅Ρ‚ΠΎΠ΄ zip

 элСмСнт, индСкс = ΠΌΠΈΠ½ (список (zip (a, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (len (a)))))
мин (список (zip (a, диапазон (len (a)))))
(7, 2)
врСмя ΠΌΠΈΠ½ (список (zip (a, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (len (a))))))
1,36 мкс Β± 107 нс Π½Π° Ρ†ΠΈΠΊΠ» (срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β± стандартноС ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ для 7 Ρ†ΠΈΠΊΠ»ΠΎΠ², 1000000 Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ)
 

ΠΌΠ΅Ρ‚ΠΎΠ΄ пСрСчислСния

 индСкс, элСмСнт = min(list(enumerate(a)), ΠΊΠ»ΡŽΡ‡=лямбда x:x[1])
ΠΌΠΈΠ½ (список (пСрСчислСниС (Π°)), ΠΊΠ»ΡŽΡ‡ = лямбда Ρ…: Ρ… [1])
(2, 7)
timeit ΠΌΠΈΠ½ (список (пСрСчислСниС (Π°)), ΠΊΠ»ΡŽΡ‡ = лямбда Ρ…: Ρ… [1])
1,45 мкс Β± 78,1 нс Π½Π° Ρ†ΠΈΠΊΠ» (срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β± стандартноС ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ для 7 Ρ†ΠΈΠΊΠ»ΠΎΠ², 1000000 Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ)
 

Π—Π°Ρ‡Π΅ΠΌ сначала Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ индСксы, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ? Ѐункция Enumerate() β€” это всСго лишь частный случай использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ zip(). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΅Π³ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 my_indexed_list = zip(my_list, range(len(my_list)))
минимальноС_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, минимальноС_индСкс = минимальноС (ΠΌΠΎΠΉ_индСксированный_список)
max_value, max_index = max(my_indexed_list)
 

Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Β«ΠΊΠ»ΡŽΡ‡Β», простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

 max_index = max( range( len(my_list) ), key = lambda index : my_list[ index ] )
 

1

ВсС просто:

 ΡˆΡ‚ΡƒΠΊ = [2, 4, 8, 15, 11]
индСкс = Π²Π΅Ρ‰ΠΈ.индСкс (макс (Π²Π΅Ρ‰ΠΈ))
 

НСбольшоС Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано. values.index(min(values)) , каТСтся, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ наимСньший индСкс min. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ самый большой индСкс:

 values.reverse()
    (values.index(min(значСния)) + len(значСния) - 1) % len(значСния)
    значСния.reverse()
 

ПослСднюю строку ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Ссли ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ эффСкт рСвСрсирования Π½Π° мСстС Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния.

Для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСх Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ

 индСксы = []
    я = -1
    для _ в диапазонС (values.count (min (values))):
      я = значСния [я + 1:]. индСкс (ΠΌΠΈΠ½ (значСния)) + я + 1
      index.append(i)
 

Для краткости. ВСроятно, Π»ΡƒΡ‡ΡˆΠ΅ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ min(values), values.count(min) Π²Π½Π΅ Ρ†ΠΈΠΊΠ»Π°.

1

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ способ поиска индСксов с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² спискС, Ссли Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ:

 минимальноС_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = минимальноС (значСния)
indexes_with_min_value = [i для i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (0, len (значСния)) if values[i] == min_value]
 

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ:

 selected = indexes_with_min_value[0]
 

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ список подписчиков my_list = [1,2,3,4,5,6,7,8,9,10] , ΠΈ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ сдСлаСм max(my_list) , ΠΎΠ½ Π²Π΅Ρ€Π½Π΅Ρ‚ 10 ΠΈ min(my_list) Π²Π΅Ρ€Π½Π΅Ρ‚ 1 . Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс максимального ΠΈΠ»ΠΈ минимального элСмСнта, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.

 мой_список = [1,2,3,4,5,6,7,8,9,10]
max_value = max(my_list) # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 10
max_value_index = my_list.index(max_value) # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 9
#Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс минимального значСния
min_value = min(my_list) # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 1
min_value_index = my_list.index(min_value) # retuns 0 

https://docs.python.org/3/library/functions.html#max

Если нСсколько элСмСнтов ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ встрСчСнный. Π­Ρ‚ΠΎ согласуСтся с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ инструмСнтами сохранСния ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ сортировки, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ sorted(iterable, key=keyfunc, reverse=True)[0]

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ большС, Ρ‡Π΅ΠΌ просто ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ сортировки.

 ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°
Ρ… = [2, 5, 7, 4, 8, 2, 6, 1, 7, 1, 8, 3, 4, 9, 3, 6, 5, 0, 9, 0]
ΠΌΠΈΠ½ = Π›ΠΎΠΆΡŒ
макс = Π˜ΡΡ‚ΠΈΠ½Π°
min_val_index = отсортированный (список (zip (x, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (len (x))))), key = operator.itemgetter (0), reverse = min)
max_val_index = отсортировано (список (zip (x, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (len (x))))), key = operator.