NumPy Array vs List Python: Kenapa Lebih Cepat
Blog/Tips & Trik/NumPy Array vs List Python: Kenapa Lebih Cepat

NumPy Array vs List Python: Kenapa Lebih Cepat

BimaBima
·26 Oktober 2026·8 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

NumPy array lebih cepat dari list Python buat data numerik karena tiga hal: array nyimpen elemen satu tipe dalam blok memori yang rapat, operasinya jalan di kode C tanpa loop Python, dan mendukung vectorization. List Python fleksibel dan bisa campur tipe, tapi tiap elemen itu objek terpisah yang bikin operasi angka jadi lambat. Buat ribuan angka ke atas, array biasanya puluhan kali lebih ngebut.

NumPy array lebih cepat dari list Python buat operasi numerik karena nyimpen angka dalam blok memori yang rapat dengan satu tipe data, lalu ngerjain operasinya di kode C tanpa loop Python. List Python fleksibel, tapi lambat buat hitung-hitungan angka dalam jumlah besar.

Kalau kamu baru mulai analisis data di Python, pertanyaan ini muncul cepat: kenapa semua orang pakai NumPy, padahal list udah ada?

Jawaban singkatnya soal cara data disimpan di memori. Aku bahas bedanya, kenapa itu penting, dan kapan kamu tetap mending pakai list.

Apa beda dasar NumPy array dan list Python?

List Python adalah kumpulan pointer ke objek yang tersebar di memori, dan tiap elemen bisa tipe berbeda. NumPy array adalah blok memori tunggal yang rapat, berisi elemen dengan satu tipe data yang sama. Perbedaan penyimpanan inilah sumber utama beda kecepatannya.

Di list, angka 5 bukan sekadar angka. Dia objek Python lengkap dengan header dan metadata. List cuma nyimpen alamat menuju objek itu.

Di array, angka 5 disimpan sebagai bilangan mentah 8 byte, nempel langsung sama tetangganya. Nggak ada objek pembungkus, nggak ada pointer lompat-lompat.

Kenapa NumPy array lebih cepat?

Array lebih cepat karena tiga alasan: data satu tipe disimpan berdampingan sehingga ramah cache CPU, operasi dijalankan di kode C yang sudah dikompilasi, dan array mendukung vectorization sehingga nggak butuh loop Python per elemen. Gabungan ini bikin operasi numerik jauh lebih efisien.

  • Memori rapat. Elemen array nempel berurutan, jadi CPU bisa baca sekaligus dalam blok. List harus loncat ke alamat berbeda buat tiap elemen.
  • Satu tipe data. Karena semua elemen sama tipe, NumPy nggak perlu cek tipe tiap kali. List harus cek tipe tiap elemen saat operasi.
  • Vectorization. Operasi seperti tambah semua elemen jalan di loop C internal, bukan loop Python yang lambat.

Vectorization ini yang paling terasa. Kamu tulis arr * 2, dan NumPy kaliin semua elemen tanpa kamu nulis loop. Kalau belum familiar konsep dasarnya, baca dulu dasar-dasar NumPy array.

Perbandingan langsung: array vs list

AspekNumPy arrayList Python
Tipe dataSeragam (satu tipe)Boleh campur
PenyimpananBlok memori rapatPointer tersebar
Operasi numerikVectorized, cepatLoop Python, lambat
Pemakaian memoriLebih hematLebih boros
Ubah ukuranMahal (bikin array baru)Murah (append cepat)
FleksibilitasRendahTinggi

Contoh Kasus: Hitung Total Penjualan Toko Berkah

Toko Berkah punya catatan 1 juta transaksi harian dalam setahun. Tim mau kaliin tiap jumlah unit sama harga buat dapat nilai penjualan per transaksi, lalu totalin.

Pakai list Python murni:

unit = [3] * 1_000_000
harga = [15000] * 1_000_000

total = 0
for u, h in zip(unit, harga):
    total += u * h

Pakai NumPy:

import numpy as np

unit = np.full(1_000_000, 3)
harga = np.full(1_000_000, 15000)

total = (unit * harga).sum()

Di laptop biasa, versi list makan sekitar 90 milidetik buat 1 juta baris, sementara versi NumPy selesai di sekitar 3 milidetik. Itu sekitar 30 kali lebih cepat, dan bedanya makin lebar makin banyak data.

Angka pastinya beda-beda tergantung mesin, tapi polanya konsisten: makin banyak angka, makin jauh NumPy unggul. Buat data kecil di bawah ratusan elemen, bedanya nggak kerasa.

Kalau kamu masih sering nulis loop buat olah tabel, cek juga alternatif iterrows yang lebih cepat di Pandas. Prinsipnya sama: hindari loop Python per baris.

Cara ukur sendiri dengan timeit

Kamu bisa buktiin sendiri pakai modul timeit. Ini cara ngukur waktu eksekusi kecil secara adil.

import timeit
import numpy as np

setup_list = 'data = list(range(100000))'
kode_list = 'hasil = [x * 2 for x in data]'

setup_np = 'import numpy as np; data = np.arange(100000)'
kode_np = 'hasil = data * 2'

print(timeit.timeit(kode_list, setup_list, number=100))
print(timeit.timeit(kode_np, setup_np, number=100))

Jalanin di mesinmu sendiri. Angka absolutnya bakal beda, tapi versi NumPy hampir selalu menang buat operasi numerik massal.

Kapan list Python tetap lebih baik?

List menang kalau datanya bukan numerik murni, sering berubah ukuran, atau jumlahnya kecil. NumPy punya overhead setup, jadi buat data kecil atau operasi non-angka, list lebih praktis dan nggak butuh library tambahan.

  • Data campuran. List bisa nampung angka, teks, dan objek dalam satu wadah. Array harus satu tipe.
  • Sering append. Nambah elemen ke list itu murah. Nambah ke array bikin array baru tiap kali, jadi mahal.
  • Data kecil. Buat puluhan elemen, overhead NumPy nggak sepadan sama keuntungannya.
  • Operasi non-numerik. Kalau kamu cuma nyimpen dan iterasi objek, list lebih sederhana.

Kesalahan Umum

  • Loop manual di atas array. Nulis for buat operasi yang bisa vectorized bikin array kehilangan keunggulannya. Pakai operasi NumPy langsung.
  • Append berulang ke array. np.append dalam loop bikin array baru tiap iterasi. Mending kumpulin di list dulu, baru konversi sekali.
  • Campur tipe di array. Kalau masukin angka dan teks, NumPy paksa semua jadi string, dan operasi angka jadi gagal.
  • Konversi bolak-balik. Ubah list ke array lalu balik ke list terus-terusan buang waktu. Pilih satu struktur dan konsisten.

FAQ

Apakah NumPy selalu lebih cepat dari list?

Nggak selalu. Buat data numerik dalam jumlah besar, NumPy hampir selalu menang berkat memori rapat dan vectorization. Tapi buat data kecil di bawah ratusan elemen, overhead setup NumPy bikin bedanya nggak kerasa, bahkan kadang list lebih cepat. NumPy juga nggak cocok buat data campuran tipe atau yang sering berubah ukuran.

Kenapa NumPy array hemat memori?

Karena array nyimpen nilai mentah tanpa pembungkus objek. Di list Python, tiap angka adalah objek penuh dengan header dan metadata, jadi makan puluhan byte per elemen. Array nyimpen tiap angka cuma sebesar tipe datanya, misalnya 8 byte buat integer 64-bit. Buat jutaan elemen, selisih memorinya jadi besar.

Apa itu vectorization di NumPy?

Vectorization adalah menjalankan operasi ke seluruh array sekaligus tanpa nulis loop Python. Kamu tulis arr + 1, dan NumPy tambahin 1 ke semua elemen lewat loop C internal yang cepat. Ini beda dari loop Python yang mengeksekusi tiap iterasi di level interpreter yang lambat. Vectorization jadi alasan utama kode NumPy ringkas sekaligus ngebut.

Apakah saya perlu belajar list dulu sebelum NumPy?

Iya, sebaiknya. List Python konsep dasar yang kepakai di mana-mana, termasuk buat nyiapin data sebelum masuk NumPy. Setelah paham list, indexing, dan slicing, transisi ke array jadi gampang karena banyak sintaksnya mirip. NumPy nambahin kemampuan numerik di atas fondasi yang udah kamu punya dari list.

Bisakah saya campur NumPy array dan list dalam satu proyek?

Bisa, dan itu umum. Banyak proyek pakai list buat data mentah campuran atau yang sering di-append, lalu konversi ke array waktu butuh hitungan numerik cepat. Kuncinya konsisten: kumpulin data di list dulu, konversi sekali dengan np.array(), lalu kerjakan operasi berat di array. Hindari konversi bolak-balik yang buang waktu.

Penutup

Beda kecepatan NumPy dan list turun dari cara data disimpan. Ringkasnya:

  • NumPy nyimpen angka satu tipe dalam blok rapat, jadi operasi numerik puluhan kali lebih cepat.
  • List menang buat data campuran, sering append, atau jumlah kecil.
  • Kalau kamu nulis loop di atas array, kamu buang keunggulan NumPy. Pakai vectorization.

Mau lancar olah data numerik di Python? Lanjut praktek dari dasar-dasar NumPy array, dan mulai ganti loop lama kamu dengan operasi vectorized.

Referensi resmi: dokumentasi resmi NumPy.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel terkait

Uji Chi-Square: Konsep dan Contoh Praktis (2026)
Tips & Trik
30 Desember 2026•9 menit baca

Uji Chi-Square: Konsep dan Contoh Praktis (2026)

Mau tau apakah metode bayar berhubungan sama tipe pelanggan? Uji chi-square jawabannya. Ini konsep, rumus, cara hitung di Python, plus contoh data toko nyata.

BimaBima
Korelasi Spearman: Kapan Dipakai vs Pearson
Tips & Trik
27 Desember 2026•8 menit baca

Korelasi Spearman: Kapan Dipakai vs Pearson

Korelasi Spearman kerja di peringkat, bukan nilai asli. Ini bedanya dengan Pearson, kapan pakai yang mana, dan cara hitungnya di Excel dan Python.

BimaBima
Korelasi Pearson: Cara Menghitung dan Membaca
Tips & Trik
24 Desember 2026•8 menit baca

Korelasi Pearson: Cara Menghitung dan Membaca

Korelasi Pearson ngukur seberapa kuat dua angka bergerak bareng. Ini cara hitung dan baca nilainya dengan contoh dataset toko Indonesia.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

© 2026 Ngulik Data. Semua hak dilindungi.

TAUTAN
BantuanHargaDatasetBlogAfiliasi
LEGAL
Syarat & KetentuanKebijakan Privasi
Ngulik Data
DatasetLeaderboardBlogStore