Cara menggunakan python array slice syntax

Slicing merupakan teknik memilih data dari sebuah set data. Misal kita memiliki data berat badan mahasiswa: 65, 78, 77, 100, 56. Maka jika kita urutkan maka urutan pertama adalah 65, urutan kedua adalah 78, urutan ketiga adalah 77, urutan keempat adalah 100, dan urutan terakhir adala 56.

Jika didefinisikan ke dalam list, maka akan seperti berikut:

berat_badan=[65,78,77,100,56] berat_badan[1] berat_badan[4] berat_badan[::2]
  • Jika kita mengeksekusi baris kedua, maka yang keluar adalah 78
  • Jika kita mengeksekusi baris ketiga, maka yang keluar adalah 56
  • Jika kita mengekseusi baris keempat, maka yang keluar adalah item urutan kedua 65, 77, 56

Pertanyaannya, mengapa berat_badan[1]  justru memberi input 78, dan bukan 65? Karena indexing (proses urutan) dalam python dimulai dari nol. Sehingga list berat_badan dimulai dari 0,1,2,3,4

berat_badan[0] berat_badan[:] berat_badan[1:4]
  • Jika eksekusi baris pertama, maka hasilnya adalah 65, karena index [0] menunjukkan urutan pertama
  • Jika eksekusi baris kedua, maka hasilnya semua data dalam list, karena index [:] menunjukkan semua data
  • Jika eksekusi baris ketiga, maka hasilnya [78,77,100] karena menunjukkan urutan data kedua sampai keempat.

Perlu diperhatikan bahwa slicing dalam python, urutan terakhir tidak dibaca oleh bahasa python itu sendiri. Maka penulisan [1:4] kita memberikan perintah slicing mulai index 1 sampai index 4 sebagai batas akhir (di mana index 4 ini tidak termasuk ke dalamnya). Sehingga yang dieksekusi adalah index ke 1 sampai 3.

Jika kita eksekusi

berat_badan[:3]

Maka yang keluar adalah [65,78,77] karena kita mengindex dari 0 sampai 2 (3 sebagai batasnya, tidak termasuk). Jika kita menulisnya dengan berat_badan[0:3] hasilnya juga akan sama.

Sekarang bagaimana jika kita memiliki list di dalam list?

Bisa langsung dilihat melalui script di bawah ini:

tinggi=[[165,170,171],[200,230,200,198,197],[154,145,148,120]] tinggi[1] tinggi[:3] tinggi[:] tinggi[1][2] tinggi[:][2] tinggi[2][:] tinggi[2][1:3] tinggi[::-1] tinggi[::-2]

Masing-masing akan memberikan output:

  • Baris kedua [200, 230, 200, 198, 197]
  • Baris ketiga [[165, 170, 171], [200, 230, 200, 198, 197], [154, 145, 148, 120]]
  • Baris keempat  [[165, 170, 171], [200, 230, 200, 198, 197], [154, 145, 148, 120]]
  • Baris kelima 200
  • Baris keenam [154, 145, 148, 120]
  • Baris ketujuh [154, 145, 148, 120]
  • Baris kedelapan [145, 148]
  • Baris kesembilan [[154, 145, 148, 120], [200, 230, 200, 198, 197], [165, 170, 171]]
  • Baris kesepuluh [[154, 145, 148, 120], [165, 170, 171]]

Sekarang, bagaimana jika kita ingin melakukan slicing kolom dalam sebuah tabel?

Semisal kita memiliki tabel seperti ini (bisa didownload di link ini):

Jika demikian, kita tidak bisa menggunakan teknik slicing seperti di atas. Kita harus menggunakan argumen iloc. Syntaxnya kurang lebih seperti ini

nama_variabel.iloc[baris_ke,kolom_ke]

Silakan eksekusi lines di bawah ini

import pandas as pd dataset=pd.read_csv('Data.csv') dataset[:] dataset.iloc[1,2] dataset.iloc[:,:] dataset.iloc[1:2,:] dataset.iloc[1:3,1:-1] dataset.iloc[1:3,1:-1].values

  • Line ke 3 akan menampilkan semuanya
  • Line ke 4 akan menampilkan irisan dari baris ke 1 dan kolom ke 2 (ingat index dimulai dari nol!)
  • Line ke 5 juga seperti line ketiga, akan menampilkan semuanya
  • Line ke 6 akan menampilkan irisan antara baris ke 1 sampai ke dua (ingat index terakhir tidak termasuk!), dan semua kolom
  • Line ke 7 akan menampilkan irisan antara baris ke 1 sampai ke tiga, dan kolom ke 1 sampai terakhir (-1 artinya index terakhir, -2 artinya 1 index sebelum index terakhir)
  • Line ke 8 akan menampilkan irisan seperti line ke 7, tanpa mengikut sertakan header kolomnya (values nya saja) dan akan merubahnya menjadi sebuah array (numpy array).

Slicing arrays

Slicing in python means taking elements from one given index to another given index.

We pass slice instead of index like this: [start:end].

We can also define the step, like this: [start:end:step].

If we don't pass start its considered 0

If we don't pass end its considered length of array in that dimension

If we don't pass step its considered 1

Example

Slice elements from index 1 to index 5 from the following array:

import numpy as np

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

print(arr[1:5])

Try it Yourself »

Note: The result includes the start index, but excludes the end index.

Example

Slice elements from index 4 to the end of the array:

import numpy as np

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

print(arr[4:])

Try it Yourself »

Example

Slice elements from the beginning to index 4 (not included):

import numpy as np

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

print(arr[:4])

Try it Yourself »

Negative Slicing

Use the minus operator to refer to an index from the end:

Example

Slice from the index 3 from the end to index 1 from the end:

import numpy as np

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

print(arr[-3:-1])

Try it Yourself »

STEP

Use the step value to determine the step of the slicing:

Example

Return every other element from index 1 to index 5:

import numpy as np

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

print(arr[1:5:2])

Try it Yourself »

Example

Return every other element from the entire array:

import numpy as np

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

print(arr[::2])

Try it Yourself »

Slicing 2-D Arrays

Example

From the second element, slice elements from index 1 to index 4 (not included):

import numpy as np

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

print(arr[1, 1:4])

Try it Yourself »

Note: Remember that second element has index 1.

Example

From both elements, return index 2:

import numpy as np

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

print(arr[0:2, 2])

Try it Yourself »

Example

From both elements, slice index 1 to index 4 (not included), this will return a 2-D array:

import numpy as np

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

print(arr[0:2, 1:4])

Try it Yourself »

Test Yourself With Exercises

Exercise:

Insert the correct slicing syntax to print the following selection of the array:

Everything from (including) the second item to (not including) the fifth item.

arr = np.array([10, 15, 20, 25, 30, 35, 40]) print(arr)

Start the Exercise


Apa itu slicing di Python?

Slicing merupakan teknik memilih data dari sebuah set data. Misal kita memiliki data berat badan mahasiswa: 65, 78, 77, 100, 56. Maka jika kita urutkan maka urutan pertama adalah 65, urutan kedua adalah 78, urutan ketiga adalah 77, urutan keempat adalah 100, dan urutan terakhir adala 56.

Apa itu array di Python?

Array Python adalah salah satu cara untuk mengorganisir dan menyusun data-data yang ada agar lebih terstruktur dan mudah untuk diakses.

Postingan terbaru

LIHAT SEMUA