πŸ”§ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива numpy: простой способ настройки

Как ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива numpy? Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива numpy с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° reshape(). Он позволяСт Π²Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ массива Π±Π΅Π· измСнСния Π΅Π³ΠΎ содСрТимого. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° reshape():

import numpy as np

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ исходного массива
arr = np.array([1, 2, 3, 4, 5, 6])

# ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива Π½Π° 2 строки ΠΈ 3 столбца
reshaped_arr = arr.reshape(2, 3)

print(reshaped_arr)
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм массив arr со значСниями ΠΎΡ‚ 1 Π΄ΠΎ 6, Π° Π·Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° reshape() измСняСм Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° 2 строки ΠΈ 3 столбца. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ массив:

[[1 2 3]
 [4 5 6]]
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ количСство элСмСнтов Π² исходном массивС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ количСству элСмСнтов Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΌ массивС. Если это Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрировано ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. НадСюсь, эта информация ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ. Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ вопросы, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ.

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

Как ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива numpy

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

1. ИзмСнСниС Ρ„ΠΎΡ€ΠΌΡ‹ массива (Reshape)

ΠœΠ΅Ρ‚ΠΎΠ΄ reshape() позволяСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ массива Π±Π΅Π· измСнСния Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

import numpy as np

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива с 12 элСмСнтами
arr = np.arange(12)
print("ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив:")
print(arr)

# ИзмСнСниС Ρ„ΠΎΡ€ΠΌΡ‹ массива Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ (3 строки, 4 столбца)
reshaped_arr = arr.reshape(3, 4)
print("Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив:")
print(reshaped_arr)

Π’Ρ‹Π²ΠΎΠ΄:

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив:
[ 0  1  2  3  4  5  6  7  8  9 10 11]
Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив:
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ reshape(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ массива с 12 элСмСнтами Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с 3 строками ΠΈ 4 столбцами.

2. ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива (Resize)

ΠœΠ΅Ρ‚ΠΎΠ΄ resize() позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, добавляя ΠΈΠ»ΠΈ удаляя элСмСнты. Если Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива большС исходного, Π½ΠΎΠ²Ρ‹Π΅ элСмСнты Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Если Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ мСньшС исходного, лишниС элСмСнты Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.

import numpy as np

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ массива ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта
arr = np.array([1])

# ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива Π½Π° 5 элСмСнтов
resized_arr = np.resize(arr, 5)
print("Π˜Π·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ массив:")
print(resized_arr)

Π’Ρ‹Π²ΠΎΠ΄:

Π˜Π·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ массив:
[1 1 1 1 1]

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм массив ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта ΠΈ измСняСм Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° 5 элСмСнтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° resize(). НовыС элСмСнты Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 1.

3. ИзмСнСниС порядка элСмСнтов массива (Transpose)

ΠœΠ΅Ρ‚ΠΎΠ΄ transpose() позволяСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок элСмСнтов массива. Для Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΎΠ½ мСняСт мСстами строки ΠΈ столбцы.

import numpy as np

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива 2x3
arr = np.array([[1, 2, 3],
                [4, 5, 6]])

# ИзмСнСниС порядка элСмСнтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° transpose()
transposed_arr = arr.transpose()
print("Массив с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌ порядком элСмСнтов:")
print(transposed_arr)

Π’Ρ‹Π²ΠΎΠ΄:

Массив с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌ порядком элСмСнтов:
[[1 4]
 [2 5]
 [3 6]]

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 2x3 ΠΈ измСняСм порядок элСмСнтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° transpose(). Π­Ρ‚ΠΎ мСняСт мСстами строки ΠΈ столбцы массива.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива Π² NumPy. ΠœΡ‹ рассмотрСли ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ reshape(), resize() ΠΈ transpose() ΠΈ прСдоставили Π²Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° для дСмонстрации ΠΈΡ… использования. НадССмся, эта информация Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ для вас!

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

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

β–Ί 5. Π”ΠžΠ‘ΠΠ’Π›Π•ΠΠ˜Π• И Π£Π”ΠΠ›Π•ΠΠ˜Π• элСмСнтов массива | ΠšΡƒΡ€Ρ ΠΏΠΎ Numpy.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² массив. Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ массива. с++ Π£Ρ€ΠΎΠΊ #59

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

πŸ”§ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива numpy: простой способ настройки