Как поменять местами две строки в массиве NumPy?

Программирование и разработка

Одна из распространенных задач, с которыми вы можете столкнуться при работе с массивами NumPy, — это необходимость поменять местами две строки. Замена строк может быть необходима при предварительной обработке данных, изменении их формы или изменении порядка данных для выполнения конкретного анализа в Python. В этой статье мы рассмотрим различные методы замены двух строк в массиве NumPy. В этой статье мы увидим, как поменять местами две строки в массиве NumPy.

Замена двух строк в массиве NumPy

Ниже приведены некоторые методы и способы, с помощью которых мы можем поменять местами две строки в массиве NumPy :

  • Использование roll()
  • Использование расширенного индексирования
  • Использование индексации NumPy
  • Использование прямого присвоения
  • Использование пользовательского ввода

Замена строк с помощью np.roll()

В этом примере мы используем numpy.roll() для замены двух строк в массиве NumPy. Как мы видим в данном примере, 0-я строка меняется местами со 2-й, 1-я — с 3-й и так далее.

Python3

# Swapping two rows in a given numPy array
# Importing NumPy Module
import numpy as np
# Creating a NumPy array
num_arr = np.array([[1,3,1], [3,1,3], [2,9,2], [9,2,9]])
# Displaying the original array
print("Original array:")
print(num_arr)
# Using np.roll() method for swapping array along row
num_arr = np.roll(num_arr,2,axis=0)
print("\nArray after swapping the rows:")
print(num_arr)

Выход

Исходный массив:
[[1 3 1]
[3 1 3]
[2 9 2]
[9 2 9]]

Массив после замены строк:
[[2 9 2]
[9 2 9]
[1 3 1]
[3 1 3]]

Замена строк массива NumPy с использованием расширенной индексации

В этом примере мы используем расширенную индексацию для замены двух строк в массиве NumPy. Здесь 0-я и 3-я строки массива NumPy меняются местами с использованием предварительной индексации.

Читайте также:  Как использовать тернарный оператор в JavaScript

Python3

# Swapping two rows in a given numPy array
# Importing NumPy Module
import numpy as np
# Creating a NumPy array
num_arr = np.array([[1,3,1], [3,1,3], [2,9,2], [9,2,9]])
# Displaying the original array
print("Original array:")
print(num_arr)
# Swapping 0th and 3rd rows
num_arr[[0,3]] = num_arr[[3,0]]
print("\nArray after swapping the rows:")
print(num_arr)

Выход:

Исходный массив:
[[1 3 1]
[3 1 3]
[2 9 2]
[9 2 9]]
Массив после замены строк:
[[9 2 9]
[3 1 3]
[2 9 2]
[1 3 1]]

Замена строк Python с использованием индексации NumPy

В этом примере мы используем индексацию NumPy для замены двух строк в массиве NumPy. Здесь 0-я, 1-я и 3-я строки массива NumPy меняются местами с использованием индексации numpy.

Python3

# Swapping two rows in a given numPy array
# Importing NumPy Module
import numpy as np
# Creating a NumPy array
num_arr = np.array([[3, 2, 1], [6, 5, 4], [9, 8, 7]])
# Displaying the original array
print("Original array:")
print(num_arr)
# Swapping 0th and 1st and 2nd rows
num_arr = num_arr[[2 , 0, 1]]
print("\nArray after swapping the rows:")
print(num_arr

Выход:

Исходный массив:
[[3 2 1]
[6 5 4]
[9 8 7]]
Массив после замены строк:
[[9 8 7]
[3 2 1]
[6 5 4]]

Замена строк в массиве NumPy с использованием прямого присваивания

В данном примере первая и вторая строки массива NumPy меняются местами с помощью прямого присваивания.

Python3

# Swapping two rows in a given numPy array
# Importing NumPy Module
import numpy as np
# Creating a NumPy array
num_arr = np.array([[3, 2, 1], [6, 6, 6], [8, 8, 8]])
# Displaying the original array
print("Original array:")
print(num_arr)
# Swapping 1st and 2nd rows
temp = num_arr[1].copy()
num_arr[1] = num_arr[2]
num_arr[2] = temp
print("\nArray after swapping the rows:")
print(num_arr)

Выход

Исходный массив:
[[3 2 1]
[6 6 6]
[8 8 8]]
Массив после замены строк:
[[3 2 1]
[8 8 8]
[6 6 6]]

Замена строк в массиве Python NumPy с использованием пользовательского ввода

В данном примере мы принимаем пользовательский ввод, а затем меняем строки местами.

Python3

# Swapping two rows in a given numPy array
# Importing NumPy Module
import numpy as np
# Creating a NumPy array
num_arr = np.array([[1, 1, 1], [6, 6, 6], [8, 8, 8], [0, 0, 0]])
# Displaying the original array
print("Original array:")
print(num_arr)
# Defining Swap function
def Swap(arr, firstIndex, secondIndex):
    arr[[firstIndex, secondIndex]] = arr[[secondIndex, firstIndex]]
# Passing parameter to Swap function
Swap(num_arr, 0, 3)
print("\nArray after swapping the rows:")
print(num_arr)

Выход

Исходный массив:
[[1 1 1]
[6 6 6]
[8 8 8]
[0 0 0]]
Массив после замены строк:
[[0 0 0]
[6 6 6]
[8 8 8]
[1 1 1]]

Оцените статью
bestprogrammer.ru
Добавить комментарий