Přejít na hlavní obsah

Jak vytvořit trojrozměrné pole v Pythonu

3D pole jsou pohodlná a výkonná datová struktura, která umožňuje ukládat a zpracovávat velké množství informací. Skládají se z prvků, z nichž každý má tři indexy: první pro přístup k prvkům hlavního pole, druhý k prvkům vnitřního pole a třetí k prvkům samotného vnitřního pole.

arr = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]for i in range(len(arr)):for j in range(len(arr[i])):for k in range(len(arr[i][j])):print(arr[i][j][k], end=' ')print()print()

Nyní víte, jak odvodit trojrozměrné pole Pythonu pomocí jednoduchého přístupu pomocí cyklů. Tato metoda může být užitečná v různých situacích, kdy je vyžadováno zpracování a zobrazení složitých datových struktur. Nebojte se experimentovat s různými velikostmi polí a tento přístup uplatněte ve svých projektech!

Jak vyvedu trojrozměrné pole Pythonu?

Jedním z jednoduchých způsobů je použití vnořených cyklů k obcházení každého prvku trojrozměrného pole. Zde je příklad kódu:

arr = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]for i in range(len(arr)):for j in range(len(arr[i])):for k in range(len(arr[i][j])):print(arr[i][j][k], end=' ')print()print()

Dalším způsobem je použití funkce numpy, která poskytuje pohodlnější metody pro práci s vícerozměrnými poli. Zde je příklad kódu, který používá knihovnu numpy:

import numpy as nparr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])print(arr)

Jednoduchý způsob s příklady

Příklad 1:

array = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]for i in array:for j in i:print(j)

V tomto příkladu prochází první cyklus vnějšími poli a druhý cyklus prochází vnitřními poli. V důsledku toho bude každý prvek vnitřního pole vyveden na samostatný řádek.

Příklad 2:

array = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]for i in array:for j in i:for k in j:print(k)

V tomto příkladu je přidán další cyklus procházející vnitřním polem. Každý prvek trojrozměrného pole tak bude vyveden na samostatný řádek.

Příklad 3:

array = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]for i in array:print(i)

V tomto příkladu bude vyvedeno každé vnější pole na samostatném řádku.

Krok 1: vytvoření trojrozměrného pole

Prvním způsobem je použití podsložek. Chcete-li vytvořit 3D pole, musíte vytvořit seznam, který bude obsahovat více seznamů, které ihrer zase budou obsahovat další seznamy. Počet vnořených seznamů a jejich prvků je určen velikostí trojrozměrného pole:

array_3d = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]

V tomto příkladu je vytvořeno 3D pole o rozměrech 2x2x3. Způsob, jak vytvořit 3D pole pomocí vnořených seznamů, je nejjednodušší a nejpohodlnější. Existují však i jiné způsoby, které umožňují flexibilnější práci s trojrozměrnými poli.

Příklad kódu pro vytvoření trojrozměrného pole v Pythonu

K vytvoření trojrozměrného pole v Pythonu lze použít modul numpy.

import numpy as np# Задаем размеры массиваrows = 3cols = 4depth = 2# Создаем трехмерный массив с помощью функции np.zerosarr = np.zeros((rows, cols, depth), dtype=int)# Заполняем массив значениямиfor i in range(rows):for j in range(cols):for k in range(depth):arr[i, j, k] = i + j + kprint(arr)

Krok 2: Použití vnořených cyklů

array = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]for i in array:for j in i:for k in j:print(k, end=' ')print()print()

Výsledek provádění kódu:

1 2 34 5 67 8 910 11 12

Příklad kódu a vysvětlení použití vnořených cyklů pro přístup k prvkům trojrozměrného pole

Příklad kódu:

array = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]# Вложенные циклы для доступа к элементам трехмерного массиваfor i in range(len(array)):for j in range(len(array[i])):for k in range(len(array[i][j])):print(array[i][j][k], end=' ')print()print()

Vysvětlení použití vnořených cyklů:

V tomto příkladu máme trojrozměrné pole obsahující dvě dvourozměrná pole. Chceme projít každý prvek trojrozměrného pole a přenést jeho hodnotu na obrazovku.

Externí cyklus for I in range(len (array)) umožňuje procházet každý prvek vnějšího pole. Proměnná i bude obsahovat index aktuálního prvku vnějšího pole.

Ve druhém cyklu for j in range (len (array[i])) procházíme každý prvek vnitřního pole, který je prvkem vnějšího pole umístěného v pozici i . Proměnná j bude obsahovat index aktuálního prvku vnitřního pole.

Ve třetím cyklu for K in range (len (array[i][j])) procházíme každý prvek vnitřního pole, který je prvkem vnitřního pole umístěného v pozici j . Proměnná k bude obsahovat index aktuálního prvku vnitřního pole.

Vnější cyklus pak přejde na další prvek vnějšího pole a všechny výše popsané kroky se opakují pro každý prvek trojrozměrného pole.

V důsledku provedení tohoto kódu bude na obrazovce zobrazen následující výsledek:

1 23 45 67 8