🐍 Python: ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив Π½Π° части

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив Π½Π° части Π² Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСзы вмСстС со списковыми выраТСниями.

массив = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅_части = [массив[i:i+Ρ‡Π°ΡΡ‚ΡŒ_Ρ€Π°Π·ΠΌΠ΅Ρ€Π°] for i in range(0, len(массив), Ρ‡Π°ΡΡ‚ΡŒ_Ρ€Π°Π·ΠΌΠ΅Ρ€Π°)]

"Ρ‡Π°ΡΡ‚ΡŒ_Ρ€Π°Π·ΠΌΠ΅Ρ€Π°" здСсь прСдставляСт собой Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ части, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив.

НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив Π½Π° части Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3:

массив = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅_части = [массив[i:i+3] for i in range(0, len(массив), 3)]
print(Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅_части)

Π’Ρ‹Π²ΠΎΠ΄:

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

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

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ массива Π½Π° части Π² Python

Python прСдоставляСт нСсколько способов Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив Π½Π° части Π² зависимости ΠΎΡ‚ Π½Π°ΡˆΠΈΡ… потрСбностСй. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для раздСлСния массива Π½Π° части.

ΠœΠ΅Ρ‚ΠΎΠ΄ 1: ИспользованиС срСзов (slicing)

Π‘Ρ€Π΅Π·Ρ‹ Π² Python - это ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ раздСлСния массивов Π½Π° подмассивы. Для раздСлСния массива Π½Π° части с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ синтаксис срСзов.


arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk_size = 3

chunks = [arr[i:i+chunk_size] for i in range(0, len(arr), chunk_size)]
print(chunks)
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‡Π°Π½ΠΊΠ° (chunk) ΠΊΠ°ΠΊ 3. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСзов, ΠΌΡ‹ создаСм подмассивы Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ сохраняСм ΠΈΡ… Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ chunks. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π°:


[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
    

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, исходный массив Π±Ρ‹Π» Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ подмассива Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ послСднСго, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ мСньший Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ·-Π·Π° Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ‡Π°Π½ΠΊΠ°.

ΠœΠ΅Ρ‚ΠΎΠ΄ 2: ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ numpy.array_split()

Если Ρƒ вас Π΅ΡΡ‚ΡŒ установлСнный ΠΏΠ°ΠΊΠ΅Ρ‚ NumPy, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ array_split() для раздСлСния массива Π½Π° части. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡƒΠ΄ΠΎΠ±Π΅Π½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ позволяСт Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив Π½Π° части с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ.


import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
chunk_sizes = [3, 2, 5]

chunks = np.array_split(arr, chunk_sizes)
for chunk in chunks:
    print(chunk)
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ опрСдСляСм Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ‡Π°Π½ΠΊΠΎΠ² Π² спискС chunk_sizes. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array_split() ΠΌΡ‹ раздСляСм исходный массив Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ частСй, хранящиСся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ chunks. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ подмассив.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π°:


[1, 2, 3]
[4, 5]
[6, 7, 8, 9, 10]
    

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, исходный массив Π±Ρ‹Π» Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Ρ‚Ρ€ΠΈ подмассива соотвСтствСнно Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ.

ΠœΠ΅Ρ‚ΠΎΠ΄ 3: ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ numpy.split()

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив Π½Π° части с Ρ€Π°Π²Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ split() ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° NumPy. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… частСй.


import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
num_chunks = 4

chunks = np.split(arr, num_chunks)
for chunk in chunks:
    print(chunk)
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ количСство Ρ‡Π°Π½ΠΊΠΎΠ² Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ num_chunks. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ split() ΠΌΡ‹ раздСляСм исходный массив Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ количСство ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… частСй, хранящихся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ chunks. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ подмассив.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π°:


[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[10]
    

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, исходный массив Π±Ρ‹Π» Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ подмассива ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько способов раздСлСния массива Π½Π° части Π² Python. ΠœΡ‹ использовали срСзы, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ numpy.array_split() ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ numpy.split(). Π’ зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящий ΠΌΠ΅Ρ‚ΠΎΠ΄.

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ массива Π½Π° части ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ инструмСнты, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ массивы Π½Π° подмассивы Π² Python.

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

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ списка. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ Simple. ΠžΠ±ΡƒΡ‡Π°Π΅ΠΌΡΡ python Π½Π° сайтС CheckIO #21

Π£Ρ€ΠΎΠΊΠΈ Python - Бписки (ΠœΠ°ΡΡΠΈΠ²Ρ‹)

Python с нуля | Бписки Π² Python | ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ списков, сортировка списка, срСзы списков Π² Python

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

Как обозначаСтся срСднСС арифмСтичСскоС Π² Python? 😊🐍

βš‘οΈπŸ”Ž Как Π½Π°ΠΉΡ‚ΠΈ экстрСмумы ΠΏΠΈΡ‚ΠΎΠ½: ΠΈΡ‰Π΅ΠΌ максимумы ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡ‹ Π² Python

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» while Π² Python: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство

🐍 Python: ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ массив Π½Π° части

πŸ” Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС символы малСнькими Π² Python? 🐍

πŸ”₯Как бСсплатно Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° Python Π·Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ врСмя?

Как Π»Π΅Π³ΠΊΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ nan Π² Python Pandas? πŸ˜ƒπŸΌ