Menu
CoddyTech

Pengindeksan Berdasarkan Dimensi

Pelajaran 13 dari 18 dalam kursus Dasar-Dasar NumPy di Coddy.

Numpy mendukung alat yang sangat kuat, pengindeksan dimensi.

Untuk mengindeks dimensi, kita menggunakan titik dua :. Titik dua mengambil semua elemen pada indeks tertentu tempat tanda itu diletakkan. Misalnya, anggap kita memiliki array dengan bentuk ary.shape # --> (2, 1, 3, 1), menempatkan titik dua : pada ary[:, 0, 0, 0] akan mengambil dua elemen paling kiri dari bentuk tersebut, lalu untuk setiap elemen itu, mengambil elemen ke-0 dari dimensi lainnya.

Catatan: Letak titik dua di dalam brackets [] adalah dimensi yang sedang kita indeks, artinya

  • ary[:, 0, 0, 0] Mengindeks dimensi 4D
  • ary[0, :, 0, 0] Mengindeks dimensi 3D
  • ary[0, 0, :, 0] Mengindeks dimensi 2D
  • ary[0, 0, 0, :] Mengindeks dimensi 1D
  • ary[:, :, 0, 0] Mengindeks dimensi 4D dan 3D
  • dan seterusnya

Contoh 1

ary = np.array([
	[1, 2], 
	[3, 4]
])
ary[:, 0] # --> [1, 3]
ary[0, :] # --> [1, 2]

Titik dua mengambil semua elemen pada indeks yang ditentukan, lalu melanjutkan ke indeks berikutnya.

Dalam kasus kita: 

  • ary[:, 0] Kita mengambil semua elemen pertama, lalu mengambil elemen ke-0 dari setiap elemen tersebut.
  • ary[0, :] Kita mengambil elemen pertama, lalu mengambil semua elemen dari elemen tersebut.

Contoh 2

array 3D

ary = np.array([
	[[1, 2], [3, 4]],
	[[5, 6], [7, 8]]
])
ary[:, 0, :] # --> [[1, 2], [5, 6]]
ary[:, :, 0] # --> [[1, 3], [5, 7]]
  • ary[:, 0, :] Kita mengambil semua elemen, lalu mengambil elemen pertama, dan terakhir mengambil semua elemen di sana.
  • ary[:, :, 0] Kita mengambil semua elemen, lalu mengambil semua elemen tersebut, dan terakhir mengambil elemen pertama dari masing-masing elemen.
  • Bisakah kamu menebak apa output dari ary[0, :, :]?

Contoh 3

Mengambil indeks pertama dan terakhir dari setiap baris

x = np.array([
	[ 0,  1,  2,  3,  4,  5],
	[ 6,  7,  8,  9, 10, 11],
	[12, 13, 14, 15, 16, 17],
	[18, 19, 20, 21, 22, 23],
])
x[:, np.array([0, -1])]
>>> [0, 5, 6, 11, 12, 17, 18, 23]

Contoh 4

array dengan bentuk (2, 1, 3, 1), sama seperti pada contoh pembuka

ary = np.array([
    [
        [
            [1],[2],[3]
        ]
    ],
    [
        [
            [4],[5],[6]
        ]
    ]
])
ary[:, 0, 0, 0] # --> [1, 4]
ary[0, :, 0, 0] # --> [1]
ary[0, 0, :, 0] # --> [1, 2, 3]
ary[0, 0, 0, :] # --> [1]

Catatan: kamu juga dapat menggunakan sintaks slicing start:stop:step yang telah kita pelajari di pelajaran Slicing.

  • ary[:, 0:5, 2:3, :]
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

challenge icon

Tantangan

Mudah

Diberikan array 3D ary, ambil angka ke-2, ke-3, dan ke-4 dari setiap array 1D.

Coba sendiri

import numpy as np
'''
ary looks like:
array([[[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
        [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]],

       [[20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
        [30, 31, 32, 33, 34, 35, 36, 37, 38, 39]],

       [[40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
        [50, 51, 52, 53, 54, 55, 56, 57, 58, 59]],

       [[60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
        [70, 71, 72, 73, 74, 75, 76, 77, 78, 79]],

       [[80, 81, 82, 83, 84, 85, 86, 87, 88, 89],
        [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]])
'''
ary = np.arange(0, 100).reshape(5, 2, 10) # don't change ary
res = ary[] # <-- Complete indices
print(str(res).replace("\n", "")) # don't change this line

Semua pelajaran di Dasar-Dasar NumPy

Latihan sendiri: Compiler Python online