Panduan Array dengan Python

Panduan Array dengan Python

Pengantar

Bayangkan Anda memiliki playlist lagu favorit di ponsel Anda. Daftar putar ini adalah daftar tempat setiap lagu ditempatkan dalam urutan tertentu. Anda dapat memutar lagu pertama, melompat ke lagu kedua, melompat ke lagu kelima, dan seterusnya. Daftar putar ini sangat mirip dengan array dalam pemrograman komputer.

Array berdiri sebagai salah satu struktur data yang paling mendasar dan banyak digunakan.

Intinya, array adalah cara terstruktur untuk menyimpan beberapa item (seperti angka, karakter, atau bahkan array lainnya) dalam urutan tertentu, dan Anda dapat dengan cepat mengakses, mengubah, atau menghapus item apa pun jika Anda mengetahui posisinya (indeks).

Dalam panduan ini, kami akan memberi Anda gambaran komprehensif tentang struktur data array. Pertama-tama, kita akan melihat apa itu array dan apa karakteristik utamanya. Kita kemudian akan bertransisi ke dunia Python, mengeksplorasi bagaimana array diimplementasikan, dimanipulasi, dan diterapkan dalam skenario dunia nyata.

Memahami Struktur Data Array

Array adalah salah satu struktur data tertua dan paling mendasar yang digunakan dalam ilmu komputer dan pemrograman. Kesederhanaannya, dipadukan dengan efisiensi dalam pengoperasian tertentu, menjadikannya topik utama bagi siapa pun yang mendalami bidang pengelolaan dan manipulasi data.

Array adalah kumpulan item, biasanya dari Tipe yang sama, disimpan di lokasi memori yang berdekatan.

Penyimpanan yang berdekatan ini memungkinkan array menyediakan akses waktu yang konstan ke elemen apa pun, berdasarkan indeksnya. Setiap item dalam array disebut elemen, dan posisi elemen dalam array ditentukan oleh elemen tersebut indeks, yang biasanya dimulai dari nol.

Misalnya, pertimbangkan array bilangan bulat: [10, 20, 30, 40, 50]. Di sini, elemennya 20 memiliki indeks 1:

pengindeksan array python

Ada banyak keuntungan menggunakan array untuk menyimpan data kita. Misalnya, karena tata letak memorinya, array memungkinkan O (1) kompleksitas waktu (konstan) saat mengakses elemen berdasarkan indeksnya. Hal ini sangat bermanfaat ketika kita membutuhkan akses acak ke elemen. Selain itu, array disimpan di lokasi memori yang berdekatan, yang dapat menghasilkan lokalitas cache yang lebih baik dan peningkatan kinerja secara keseluruhan dalam operasi tertentu. Keuntungan penting lainnya dari penggunaan array adalah, karena array memiliki ukuran tetap setelah dideklarasikan, lebih mudah untuk mengelola memori dan menghindari luapan yang tidak terduga atau kesalahan kehabisan memori.

Note: Array sangat berguna dalam skenario di mana ukuran koleksi diketahui sebelumnya dan tetap konstan, atau di mana akses acak lebih sering terjadi dibandingkan penyisipan dan penghapusan.

Di sisi lain, array hadir dengan kumpulannya sendiri keterbatasan. Salah satu keterbatasan utama dari array tradisional adalah mereka ukuran tetap. Setelah array dibuat, ukurannya tidak dapat diubah. Hal ini dapat menyebabkan masalah seperti memori yang terbuang (jika array terlalu besar) atau kebutuhan untuk mengubah ukuran (jika array terlalu kecil). Selain itu, menyisipkan atau menghapus suatu elemen di tengah-tengah array memerlukan perpindahan elemen, yang mengarah ke O (n) kompleksitas waktu untuk operasi ini.

Singkatnya, mari kita ilustrasikan karakteristik utama array menggunakan contoh playlist lagu dari awal panduan ini. Array adalah struktur data yang:

  • Diindeks: Sama seperti setiap lagu di playlist Anda yang memiliki nomor (1, 2, 3,โ€ฆ), setiap elemen dalam array juga memiliki indeks. Namun, di sebagian besar bahasa pemrograman, indeks dimulai dari 0. Jadi, item pertama ada di indeks 0, item kedua di indeks 1, dan seterusnya.

  • Memiliki Ukuran Tetap: Saat Anda membuat daftar putar untuk, katakanlah, 10 lagu, Anda tidak dapat menambahkan lagu ke-11 tanpa menghapus satu lagu terlebih dahulu. Demikian pula, array memiliki ukuran tetap. Setelah Anda membuat array dengan ukuran tertentu, Anda tidak dapat menambahkan item lebih dari kapasitasnya.

  • Apakah Homogen: Semua lagu di playlist Anda adalah trek musik. Demikian pula, semua elemen dalam array memiliki tipe yang sama. Jika Anda memiliki array bilangan bulat, Anda tidak bisa tiba-tiba menyimpan string teks di dalamnya.

  • Memiliki Akses Langsung: Jika Anda ingin mendengarkan lagu ke-7 di playlist Anda, Anda dapat langsung membukanya. Demikian pula dengan array, Anda dapat langsung mengakses elemen apa pun jika Anda mengetahui indeksnya.

  • Memori Bersebelahan: Ini sedikit lebih teknis. Ketika sebuah array dibuat di memori komputer, array tersebut menempati blok memori yang berkesinambungan. Anggap saja seperti deretan loker yang berdekatan di sekolah. Setiap loker terletak bersebelahan, tanpa ada celah di antaranya.

Python dan Array

Python, yang terkenal dengan fleksibilitas dan kemudahan penggunaannya, menawarkan berbagai cara untuk bekerja dengan array. Meskipun Python tidak memiliki struktur data array asli seperti beberapa bahasa lainnya, Python memberikan alternatif kuat yang dapat berfungsi serupa dan bahkan menawarkan kemampuan yang lebih luas.

Sepintas, daftar Python mungkin tampak identik dengan array, namun ada perbedaan dan nuansa halus yang perlu dipertimbangkan:

Daftar susunan
Struktur data Python bawaan Bukan asli dalam Python โ€“ mereka berasal dari modul `array`
Ukuran dinamis Ukuran tetap (yang telah ditentukan sebelumnya).
Dapat menampung item dengan tipe data berbeda Pegang item dengan tipe yang sama
Menyediakan berbagai metode manipulasi bawaan Perlu mengimpor modul eksternal
O(1) kompleksitas waktu untuk operasi akses O(1) kompleksitas waktu untuk operasi akses
Konsumsi lebih banyak memori Lebih hemat memori

Melihat tabel ini, wajar saja jika bertanya โ€“ โ€œKapan menggunakan yang mana?โ€. Nah, jika Anda memerlukan koleksi yang dapat bertambah atau menyusut secara dinamis dan dapat menampung tipe data campuran, daftar Python adalah jawabannya. Namun, untuk skenario yang memerlukan koleksi yang lebih hemat memori dengan elemen bertipe sama, Anda mungkin mempertimbangkan untuk menggunakan Python array modul atau perpustakaan eksternal seperti NumPy.

Grafik susunan Modul dengan Python

Ketika sebagian besar pengembang memikirkan array dengan Python, mereka sering kali memikirkan daftar secara default. Namun, Python menawarkan struktur array yang lebih terspesialisasi melalui bawaannya array modul. Modul ini menyediakan penyimpanan tipe data dasar gaya C yang hemat ruang dengan Python.

Meskipun daftar Python sangat serbaguna dan dapat menyimpan jenis objek apa pun, daftar tersebut terkadang berlebihan, terutama ketika Anda hanya perlu menyimpan kumpulan tipe data dasar, seperti bilangan bulat atau float. Itu array modul menyediakan cara untuk membuat array yang lebih hemat memori daripada daftar untuk tipe data tertentu.

Membuat Array

Untuk menggunakan array modul, Anda harus mengimpornya terlebih dahulu:

from array import array

Setelah diimpor, Anda dapat membuat array menggunakan array() konstruktor:

arr = array('i', [1, 2, 3, 4, 5])
print(arr)

Ini, 'i' argumen menunjukkan bahwa array akan menyimpan tanda tangan bilangan bulat. Ada beberapa kode tipe lain yang tersedia, seperti 'f' untuk pelampung dan 'd' untuk ganda.

Mengakses dan Memodifikasi Elemen

Anda dapat mengakses dan mengubah elemen dalam array seperti yang Anda lakukan dengan daftar:

print(arr[2]) 

Dan sekarang, mari kita modifikasi elemen dengan mengubah nilainya menjadi 6:

arr[2] = 6
print(arr) 

Metode Array

Grafik array modul menyediakan beberapa metode untuk memanipulasi array:

  • append() โ€“ Menambahkan elemen ke akhir array:

    arr.append(7)
    print(arr) 
  • extend() โ€“ Menambahkan elemen yang dapat diubah ke akhir:

    arr.extend([8, 9])
    print(arr) 
  • pop() โ€“ Menghapus dan mengembalikan elemen pada posisi tertentu:

    arr.pop(2)
    print(arr) 
  • remove(): Menghapus kemunculan pertama dari nilai yang ditentukan:

    arr.remove(2)
    print(arr) 
  • reverse(): Membalikkan urutan array:

    arr.reverse()
    print(arr) 

Catatan: Ada lebih banyak metode daripada yang kami cantumkan di sini. Mengacu kepada dokumentasi resmi Python untuk melihat daftar semua metode yang tersedia di array modul.

Sementara array modul menawarkan cara yang lebih hemat memori untuk menyimpan tipe data dasar, penting untuk mengingatnya keterbatasan. Tidak seperti daftar, array adalah homogen. Artinya semua elemen dalam array harus bertipe sama. Selain itu, Anda hanya dapat menyimpannya tipe data dasar gaya C dalam array. Jika Anda perlu menyimpan objek khusus atau tipe Python lainnya, Anda harus menggunakan daftar atau struktur data lainnya.

Array NumPy

NumPy, kependekan dari Numerical Python, adalah paket dasar untuk komputasi numerik dengan Python. Salah satu fitur utamanya adalah kekuatannya Objek array berdimensi N, yang menawarkan operasi cepat pada array, termasuk matematika, logika, manipulasi bentuk, dan banyak lagi.

Array NumPy lebih serbaguna daripada array bawaan Python array modul dan merupakan bahan pokok dalam ilmu data dan proyek pembelajaran mesin.

Mengapa Menggunakan Array NumPy?

Hal pertama yang terlintas dalam pikiran adalah prestasi. Array NumPy diimplementasikan dalam C dan memungkinkan penyimpanan memori yang efisien dan operasi yang lebih cepat karena algoritma yang dioptimalkan dan manfaat penyimpanan memori yang berdekatan.

Meskipun daftar dan array bawaan Python bersifat satu dimensi, array NumPy juga bisa multidimensi, menjadikannya ideal untuk merepresentasikan matriks atau tensor.

Lihat panduan praktis dan praktis kami untuk mempelajari Git, dengan praktik terbaik, standar yang diterima industri, dan termasuk lembar contekan. Hentikan perintah Googling Git dan sebenarnya belajar itu!

Terakhir, NumPy menyediakan a beragam fungsi untuk mengoperasikan array ini, mulai dari aritmatika dasar hingga operasi matematika tingkat lanjut, pembentukan ulang, pemisahan, dan banyak lagi.

Catatan: Jika Anda mengetahui ukuran data sebelumnya, pra-alokasi memori untuk array (terutama di NumPy) dapat menghasilkan peningkatan kinerja.

Membuat Array NumPy

Untuk menggunakan NumPy, Anda harus menginstalnya terlebih dahulu (pip install numpy) lalu impor:

import numpy as np

Setelah diimpor, Anda dapat membuat array NumPy menggunakan array() fungsi:

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

Anda juga dapat membuat array multidimensi:

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

Ini akan memberi kita:

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

Selain cara-cara dasar untuk membuat array, NumPy memberi kita cara cerdas lainnya untuk membuat array. Salah satunya adalah arange() metode. Ini menciptakan array dengan nilai yang bertambah secara teratur:

arr = np.arange(10)
print(arr) 

Satu lagi adalah linspace() metode, yang membuat array dengan jumlah elemen tertentu, dengan jarak yang sama antara nilai awal dan akhir yang ditentukan:

even_space = np.linspace(0, 1, 5)
print(even_space) 

Mengakses dan Memodifikasi Elemen

Mengakses dan memodifikasi elemen dalam array NumPy bersifat intuitif:

print(arr[2]) arr[2] = 6
print(arr) 

Melakukan hal yang hampir sama untuk array multidimensi:

print(matrix[1, 2]) matrix[1, 2] = 10
print(matrix)

Akan mengubah nilai elemen di baris kedua (index 1) dan kolom ketiga (index 2):

[[1 2 3] [4 5 20] [7 8 9]]

Mengubah Bentuk Array

NumPy menawarkan banyak fungsi dan metode untuk memanipulasi dan mengoperasikan array. Misalnya, Anda dapat menggunakan reshape() metode untuk mengubah bentuk array. Katakanlah kita memiliki array sederhana:

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

Dan kami ingin membentuknya kembali menjadi matriks 3ร—4. Yang perlu Anda lakukan hanyalah menggunakan reshape() metode dengan dimensi yang diinginkan diteruskan sebagai argumen:


reshaped_arr = arr.reshape(3, 4)
print("Reshaped Array (3x4):")
print(reshaped_arr)

Ini akan menghasilkan:

Reshaped Array (3x4):
[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]]

Perkalian Matriks

Grafik numpy.dot() metode digunakan untuk perkalian matriks. Ini mengembalikan produk titik dari dua array. Untuk array satu dimensi, ini adalah produk dalam dari array. Untuk array 2 dimensi, ini setara dengan perkalian matriks, dan untuk ND, itu adalah a jumlah produk pada sumbu terakhir larik pertama dan sumbu kedua hingga terakhir larik kedua.

Mari kita lihat cara kerjanya. Pertama, mari kita hitung perkalian titik dari dua larik 1-D (hasil kali dalam vektor-vektornya):

import numpy as np vec1 = np.array([1, 2, 3])
vec2 = np.array([4, 5, 6])
dot_product_1d = np.dot(vec1, vec2) print("Dot product of two 1-D arrays:")
print(dot_product_1d) 

Ini akan menghasilkan:

Dot product of two 1-D arrays:
32

32 sebenarnya adalah hasil kali dalam dari dua larik โ€“ (14 + 25 + 3*6). Selanjutnya, kita dapat melakukan perkalian matriks dari dua array 2-D:


mat1 = np.array([[1, 2], [3, 4]])
mat2 = np.array([[2, 0], [1, 3]])
matrix_product = np.dot(mat1, mat2) print("Matrix multiplication of two 2-D arrays:")
print(matrix_product) 

Yang akan memberi kita:

Matrix multiplication of two 2-D arrays:
[[ 4 6] [10 12]]

Array NumPy merupakan kemajuan signifikan dari daftar bawaan Python dan array modul, terutama untuk perhitungan ilmiah dan matematika. Efisiensinya, dikombinasikan dengan fungsionalitas kaya yang disediakan oleh perpustakaan NumPy, menjadikannya alat yang sangat diperlukan bagi siapa pun yang ingin melakukan operasi numerik dengan Python.

Kesimpulan

Array, landasan ilmu komputer dan pemrograman, telah terbukti bermanfaat berkali-kali di berbagai aplikasi dan domain. Dalam Python, struktur data mendasar ini, melalui berbagai inkarnasinya seperti daftar, adalah array modul, dan susunan NumPy yang kuat, menawarkan kepada pengembang perpaduan antara efisiensi, keserbagunaan, dan kesederhanaan.

Sepanjang panduan ini, kita telah melakukan perjalanan dari konsep dasar array hingga aplikasi praktisnya dengan Python. Kita telah melihat bagaimana array, dengan sifatnya yang berdekatan dengan memori, memberikan waktu akses yang cepat, dan bagaimana daftar dinamis Python menghadirkan lapisan fleksibilitas tambahan. Kami juga telah mempelajari dunia khusus NumPy, di mana array berubah menjadi alat canggih untuk komputasi numerik.

Stempel Waktu:

Lebih dari penyalahgunaan