Одна из распространенных задач, с которыми вы можете столкнуться при работе с массивами NumPy, — это необходимость поменять местами две строки. Замена строк может быть необходима при предварительной обработке данных, изменении их формы или изменении порядка данных для выполнения конкретного анализа в Python. В этой статье мы рассмотрим различные методы замены двух строк в массиве NumPy. В этой статье мы увидим, как поменять местами две строки в массиве NumPy.
- Замена двух строк в массиве NumPy
- Замена строк с помощью np.roll()
- Замена строк массива NumPy с использованием расширенной индексации
- Замена строк Python с использованием индексации NumPy
- Замена строк в массиве NumPy с использованием прямого присваивания
- Замена строк в массиве Python 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
(
"Original array:"
)
(num_arr)
# Using np.roll() method for swapping array along row
num_arr
=
np.roll(num_arr,
2
,axis
=
0
)
(
"\nArray after swapping the rows:"
)
(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 меняются местами с использованием предварительной индексации.
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
(
"Original array:"
)
(num_arr)
# Swapping 0th and 3rd rows
num_arr[[
0
,
3
]]
=
num_arr[[
3
,
0
]]
(
"\nArray after swapping the rows:"
)
(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
(
"Original array:"
)
(num_arr)
# Swapping 0th and 1st and 2nd rows
num_arr
=
num_arr[[
2
,
0
,
1
]]
(
"\nArray after swapping the rows:"
)
(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
(
"Original array:"
)
(num_arr)
# Swapping 1st and 2nd rows
temp
=
num_arr[
1
].copy()
num_arr[
1
]
=
num_arr[
2
]
num_arr[
2
]
=
temp
(
"\nArray after swapping the rows:"
)
(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
(
"Original array:"
)
(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
)
(
"\nArray after swapping the rows:"
)
(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]]