🐍Python np where: ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ where Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ NumPy?πŸ“ˆ

Π“Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ NumPy Π² Python?

NumPy (Numerical Python) β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для языка программирования Python, которая прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΈ эффСктивныС инструмСнты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами ΠΈ выполнСния матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π½ΠΈΠΌΠΈ.

NumPy часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… областях:

  • НаучныС исслСдования: NumPy обСспСчиваСт Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ…, особСнно Π² Π·Π°Π΄Π°Ρ‡Π°Ρ…, связанных с Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ числСнным ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
  • МашинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚: NumPy ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² машинном ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ для прСдставлСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, вычислСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ выполнСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.
  • Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ„ΠΈΠ·ΠΈΠΊΠ° ΠΈ инТСнСрия: NumPy ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ вычислСния Π² области Ρ„ΠΈΠ·ΠΈΠΊΠΈ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сигналов ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ числСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².
  • Π“Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ визуализация: NumPy ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для создания ΠΈ манипулирования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с пиксСлями ΠΈ графичСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования NumPy для создания ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ массивами:


import numpy as np

# БозданиС массива
arr = np.array([1, 2, 3, 4, 5])

# Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ массивом
print("Π‘ΡƒΠΌΠΌΠ° элСмСнтов массива:", np.sum(arr))
print("МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ массива:", np.min(arr))
print("МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ массива:", np.max(arr))

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ создаСт ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈ выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ вычислСниС суммы элСмСнтов, Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ минимального ΠΈ максимального Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NumPy Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ "np.where" Π² Python

Ѐункция "np.where" являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ NumPy для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами. Она позволяСт Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ индСксы элСмСнтов массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ условиям. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Бинтаксис

Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ "np.where" выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

np.where(условиС, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅_Ссли_истина, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅_Ссли_лоТь)

Π—Π΄Π΅ΡΡŒ:

  • условиС - это логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ массив Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅, ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ.
  • Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅_Ссли_истина - это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ссли элСмСнт удовлСтворяСт ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ.
  • Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅_Ссли_лоТь - это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ссли элСмСнт Π½Π΅ удовлСтворяСт ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ "np.where".

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: НахоТдСниС индСксов элСмСнтов, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

# Найти индСксы элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС 3
indices = np.where(arr > 3)
print(indices)

Π’Ρ‹Π²ΠΎΠ΄:

(array([3, 4]),)

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ массив "arr" ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°ΠΉΡ‚ΠΈ индСксы элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС 3. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ "np.where" с условиСм "arr > 3". Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ массив индСксов элСмСнтов, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС [3, 4].

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Π—Π°ΠΌΠ΅Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

# Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Ρ‹ 3, Π½Π° -1
new_arr = np.where(arr <= 3, -1, arr)
print(new_arr)

Π’Ρ‹Π²ΠΎΠ΄:

[-1 -1 -1  4  5]

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС элСмСнты массива "arr", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Ρ‹ 3, Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ "np.where" с условиСм "arr <= 3". Если элСмСнт удовлСтворяСт ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, Ρ‚ΠΎ ΠΎΠ½ замСняСтся Π½Π° -1, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½ остаСтся Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив "new_arr" с Π·Π°ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ значСниями, [ -1 -1 -1 4 5].

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: ИспользованиС "np.where" с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

# Найти индСксы элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС 3
indices = np.where(arr > 3)
print(indices)

Π’Ρ‹Π²ΠΎΠ΄:

(array([1, 1, 1]), array([0, 1, 2]))

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив "arr". ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°ΠΉΡ‚ΠΈ индСксы элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС 3. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ "np.where" с условиСм "arr > 3". Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π° массива с индСксами строк ΠΈ столбцов элСмСнтов, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Ѐункция "np.where" позволяСт Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ индСксы элСмСнтов массива, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ условиям, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² массивС Π½Π° основС этих условий. Π­Ρ‚ΠΎ полСзная функция, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Python.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

numpy.where() - Explained with examples

How to Use where() in Numpy and Pandas (Python)

Python NumPy Tutorial for Beginners

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ” Как Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ список ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ списка Π² Python

πŸ”„ Как вывСсти список Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ - простыС способы

πŸ”§ Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈΠ· dataframe Python: пошаговая инструкция

🐍Python np where: ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ where Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ NumPy?πŸ“ˆ

🐍 ΠŸΠΈΡ‚ΠΎΠ½ пандас: ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ столбСц πŸ“Š

πŸ”’ΠšΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ троян Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅? Π¨Π°Π³ Π·Π° шагом руководство ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ кода🐍

πŸ” Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ число ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠΌ Π² Python?