πŸ” Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ shape Π² Python? Π£Π·Π½Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ использованиС shape Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅

Π’ ΠΏΠΈΡ‚ΠΎΠ½Π΅ понятиС "shape" ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива.

Π­Ρ‚ΠΎ свойство ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния количСства элСмСнтов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ массива.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв "shape" прСдставляСт собой ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт прСдставляСт количСство элСмСнтов Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ массива.

НапримСр, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, содСрТащий 3 строки ΠΈ 4 столбца, Ρ‚ΠΎ Π΅Π³ΠΎ "shape" Π±ΡƒΠ΄Π΅Ρ‚ (3, 4).

import numpy as np

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

# Π’Ρ‹Π²ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΡ‹ массива
print(arr.shape)
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ (3, 4)

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ NumPy для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами. Она прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ "shape", которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒ массива.

Зная Ρ„ΠΎΡ€ΠΌΡƒ массива, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ массива, ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ подмассивов ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

НадСюсь, эта информация ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "shape" Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅!

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

Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ shape Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

Ѐункция "shape" Π² языкС программирования Python являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ размСрности ΠΈ Ρ„ΠΎΡ€ΠΌΠ΅ массива. Π’ частности, ΠΎΠ½Π° часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с массивами, созданными с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NumPy.

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

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ размСрности ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ массива

Одна ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° "shape", это Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива. Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива - это количСство ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π² массивС. НапримСр, ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ 1, Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ - Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ 2, Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ - Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ 3, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ΠšΡ€ΠΎΠΌΠ΅ размСрности, ΠΌΠ΅Ρ‚ΠΎΠ΄ "shape" Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„ΠΎΡ€ΠΌΠ΅ массива. Π€ΠΎΡ€ΠΌΠ° массива - это ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ указываСтся количСство элСмСнтов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ массива. НапримСр, для Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Ρ„ΠΎΡ€ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСна ΠΏΠ°Ρ€ΠΎΠΉ чисСл (m, n), Π³Π΄Π΅ m - количСство строк, Π° n - количСство столбцов.


        import numpy as np

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

        # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° размСрности массива
        print("Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива:", arr.ndim)

        # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„ΠΎΡ€ΠΌΡ‹ массива
        print("Π€ΠΎΡ€ΠΌΠ° массива:", arr.shape)
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3x4. ПослС этого ΠΌΡ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ "shape" для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ размСрности ΠΈ Ρ„ΠΎΡ€ΠΌΠ΅ массива. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π² консоль Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ информация:

        Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива: 2
        Π€ΠΎΡ€ΠΌΠ° массива: (3, 4)
    

Из Π²Ρ‹Π²ΠΎΠ΄Π° Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ массив ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ 2 (Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ) ΠΈ Ρ„ΠΎΡ€ΠΌΡƒ (3, 4), Ρ‡Ρ‚ΠΎ соотвСтствуСт 3 строкам ΠΈ 4 столбцам.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° "shape"

ΠœΠ΅Ρ‚ΠΎΠ΄ "shape" ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ для выполнСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… дСйствий с массивами. НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ "shape" для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ совмСстимости Π΄Π²ΡƒΡ… массивов ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π½ΠΈΠΌΠΈ.


        import numpy as np

        # Π”Π²Π° массива Ρ€Π°Π·Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹
        arr1 = np.array([[1, 2, 3], [4, 5, 6]])
        arr2 = np.array([[7, 8, 9]])

        # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° совмСстимости массивов ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ΅
        if arr1.shape == arr2.shape:
            print("ΠœΠ°ΡΡΠΈΠ²Ρ‹ совмСстимы")
        else:
            print("ΠœΠ°ΡΡΠΈΠ²Ρ‹ нСсовмСстимы")
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π΄Π²Π° массива Ρ€Π°Π·Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ - ΠΎΠ΄ΠΈΠ½ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ (2x3) ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ (1x3). ПослС этого ΠΌΡ‹ сравнили Ρ„ΠΎΡ€ΠΌΡ‹ массивов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ "shape". Если массивы ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, Ρ‚ΠΎ выводится сообщСниС "ΠœΠ°ΡΡΠΈΠ²Ρ‹ совмСстимы", Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС - "ΠœΠ°ΡΡΠΈΠ²Ρ‹ нСсовмСстимы".

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

ΠœΠ΅Ρ‚ΠΎΠ΄ "shape" Π² NumPy прСдоставляСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ размСрности ΠΈ Ρ„ΠΎΡ€ΠΌΠ΅ массива. Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, сколько ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ содСрТится Π² массивС, Π° Ρ„ΠΎΡ€ΠΌΠ° массива ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ количСство элСмСнтов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ "shape" ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ситуациях, связанных с массивами, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ совмСстимости массивов ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

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

ΠœΠ°ΡΡΠΈΠ²Ρ‹ numpy. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ shape ΠΈ reshape

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

#1 | Python NumPy | Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ array, arange ΠΈ dot

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ 'n' Π² Python?

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π² Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Как Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ двусвязный список Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅? Руководство с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ

πŸ” Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ shape Π² Python? Π£Π·Π½Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ использованиС shape Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅

πŸ”§ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Python Π² PATH Windows 10: пошаговая инструкция

Как Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Python Π² Visual Studio Code: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π½Π° Python