πŸ”§ Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку Π² NumPy: простой способ πŸ“

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку ΠΈΠ· массива numpy, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ delete() ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ numpy. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ массив ΠΈ индСкс строки, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ.

import numpy as np

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

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строки
arr = np.delete(arr, 1, axis=0)

print(arr)

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄Π° Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ массив Π±Π΅Π· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ строки. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ:

[[1 2 3]
 [7 8 9]]

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

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ NumPy?

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

1. ΠœΠ΅Ρ‚ΠΎΠ΄ delete

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ удалСния строки Π² NumPy - использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ delete. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ строку ΠΈΠ· массива NumPy. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import numpy as np

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

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строки с индСксом 1
new_arr = np.delete(arr, 1, axis=0)

print(new_arr)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм массив arr Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3x3. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ delete для удалСния строки с индСксом 1. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ axis=0 ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку, Π° Π½Π΅ столбСц. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΌ массивом new_arr Π±Π΅Π· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ строки.

2. Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ ΠΈ срСзы

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ удалСния строки Π² NumPy - использованиС индСксации ΠΈ срСзов. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ строки ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ массив Π±Π΅Π· этих строк. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import numpy as np

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

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строки с индСксом 1
new_arr = np.concatenate((arr[:1, :], arr[2:, :]), axis=0)

print(new_arr)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм массив arr Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3x3. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ срСза, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ строки Π΄ΠΎ индСкса 1 (arr[:1, :]) ΠΈ строки послС индСкса 1 (arr[2:, :]). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ concatenate для объСдинСния этих Π΄Π²ΡƒΡ… срСзов ΠΈ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ массива new_arr Π±Π΅Π· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ строки.

3. ΠœΠ΅Ρ‚ΠΎΠ΄ vstack

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

import numpy as np

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

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строки с индСксом 1
new_arr = np.vstack((arr[:1, :], arr[2:, :]))

print(new_arr)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм массив arr Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3x3. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ срСза, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ строки Π΄ΠΎ индСкса 1 (arr[:1, :]) ΠΈ строки послС индСкса 1 (arr[2:, :]). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ vstack для объСдинСния этих Π΄Π²ΡƒΡ… частСй массива ΠΈ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ массива new_arr Π±Π΅Π· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ строки.

4. Π‘ использованиСм Π±ΡƒΠ»Π΅Π²Π° индСкса

Π§Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ способ удалСния строки Π² NumPy - использованиС Π±ΡƒΠ»Π΅Π²Π° индСкса. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ массив Π±Π΅Π· этих строк. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import numpy as np

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

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строки ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ
condition = arr[:, 0] != 4
new_arr = arr[condition, :]

print(new_arr)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм массив arr Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3x3. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм Π±ΡƒΠ»Π΅Π² индСкс, провСряя, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ столбцС Π½Π΅ Ρ€Π°Π²Π½ΠΎ 4 (arr[:, 0] != 4). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ этот Π±ΡƒΠ»Π΅Π² индСкс для Π²Ρ‹Π±ΠΎΡ€Π° строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, ΠΈ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ массива new_arr Π±Π΅Π· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ строки.

Π’Ρ‹Π²ΠΎΠ΄

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ нСсколько способов удалСния строки Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ NumPy. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли ΠΌΠ΅Ρ‚ΠΎΠ΄ delete, использованиС индСксации ΠΈ срСзов, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ vstack ΠΈ Π±ΡƒΠ»Π΅Π² индСкс. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ свои прСимущСства ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½ Π² зависимости ΠΎΡ‚ вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΈ экспСримСнты ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ эти ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈ ΡΡ‚Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ NumPy.

Π£Π΄Π°Ρ‡ΠΈ Π² вашСм ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ ΠΏΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ NumPy!

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

#5. ИзмСнСниС Ρ„ΠΎΡ€ΠΌΡ‹ массивов, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ осСй | NumPy ΡƒΡ€ΠΎΠΊΠΈ

Π”Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΡ‹ pandas. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк

ΠžΡΠ½ΠΎΠ²Ρ‹ NumPy Python | ΠœΠ°ΡΡΠΈΠ²Ρ‹, ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ И ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Над Ними

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

πŸ”§ Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку Π² NumPy: простой способ πŸ“