NumPy Array
Setelah memahami ndarray dan atribut dasar NumPy, langkah berikutnya adalah mempelajari bagaimana cara membuat array.
NumPy menyediakan berbagai fungsi untuk membuat array tanpa harus menuliskan seluruh elemen secara manual.
Beberapa cara yang akan dipelajari:
- Membuat array dari Python list.
- Membuat array berisi angka
1. - Membuat array berisi angka
0. - Membuat array berdasarkan rentang angka.
- Membuat array dengan angka acak.
- Menggunakan dokumentasi fungsi melalui Jupyter Notebook.
Kemampuan membuat array merupakan dasar penting karena hampir seluruh operasi NumPy dilakukan terhadap array.
1. Membuat Array dari Python List
Cara paling sederhana untuk membuat NumPy array adalah menggunakan np.array().
Kita dapat membuat Python list terlebih dahulu:
numbers = [1, 2, 3]
Kemudian mengubahnya menjadi NumPy array:
import numpy as np
sample_array = np.array([1, 2, 3])
print(sample_array)
Output:
[1 2 3]
Berbeda dengan Python list yang biasanya ditampilkan dengan tanda koma, NumPy array ditampilkan dengan format khusus array.
Kita dapat memeriksa tipe objeknya:
type(sample_array)
Output:
numpy.ndarray
2. Memeriksa Tipe Data Array
Selain mengetahui tipe objek menggunakan type(), kita juga dapat mengetahui tipe data elemen menggunakan .dtype.
Contoh:
sample_array = np.array([1, 2, 3])
print(sample_array.dtype)
Output dapat berupa:
int64
Tipe data yang muncul dapat berbeda tergantung sistem atau platform yang digunakan.
Jika array berisi angka desimal:
sample_array = np.array([1.5, 2.5, 3.5])
print(sample_array.dtype)
hasilnya dapat berupa:
float64
Memahami dtype penting karena tipe data dapat memengaruhi cara NumPy menyimpan dan memproses data.
3. Membuat Array dengan np.ones()
NumPy menyediakan fungsi np.ones() untuk membuat array yang seluruh elemennya bernilai 1.
Contoh:
ones = np.ones((2, 3))
print(ones)
Output:
[[1. 1. 1.]
[1. 1. 1.]]
Pada contoh tersebut:
(2, 3)
berarti:
- 2 baris.
- 3 kolom.
Secara visual:
1 1 1
1 1 1
Tipe Data Default
Secara default, np.ones() menghasilkan nilai bertipe floating point.
Contohnya:
ones = np.ones((2, 3))
print(ones.dtype)
Hasilnya dapat berupa:
float64
Jika kita membutuhkan tipe integer, kita dapat menentukan dtype:
ones = np.ones(
(2, 3),
dtype=int
)
print(ones)
Output:
[[1 1 1]
[1 1 1]]
4. Membuat Array dengan np.zeros()
np.zeros() digunakan untuk membuat array yang seluruh elemennya bernilai 0.
Contoh:
zeros = np.zeros((2, 3))
print(zeros)
Output:
[[0. 0. 0.]
[0. 0. 0.]]
Sama seperti np.ones(), nilai default yang dihasilkan biasanya bertipe floating point.
Kita juga dapat menentukan tipe datanya:
zeros = np.zeros(
(2, 3),
dtype=int
)
print(zeros)
Output:
[[0 0 0]
[0 0 0]]
5. Kegunaan np.zeros() dan np.ones()
Array yang berisi nol atau satu dapat digunakan dalam berbagai kebutuhan komputasi.
Contohnya:
- Membuat array awal.
- Menyediakan placeholder.
- Membuat struktur data dengan ukuran tertentu.
- Inisialisasi perhitungan numerik.
- Eksperimen algoritma.
- Membuat data sementara.
Contoh secara konseptual:
Array awal
↓
[0, 0, 0, 0, 0]
↓
Diproses
↓
[10, 25, 15, 30, 20]
Dengan np.zeros(), kita dapat membuat struktur array terlebih dahulu sebelum mengisinya dengan nilai tertentu.
6. Membuat Array dengan np.arange()
Jika kita ingin membuat array berdasarkan urutan angka, kita dapat menggunakan np.arange().
Sintaks:
np.arange(start, stop, step)
Parameter tersebut berarti:
| Parameter | Fungsi |
|---|---|
start | Angka awal |
stop | Batas akhir |
step | Jarak antar angka |
Contoh:
range_array = np.arange(0, 10, 2)
print(range_array)
Output:
[0 2 4 6 8]
Perhatikan bahwa nilai 10 tidak termasuk dalam hasil.
Jadi:
np.arange(0, 10, 2)
berarti:
Mulai dari 0
Berhenti sebelum 10
Lompat 2 angka setiap langkah
7. Contoh Penggunaan np.arange()
Tanpa menentukan step, kita dapat menggunakan:
numbers = np.arange(5)
print(numbers)
Output:
[0 1 2 3 4]
Secara default:
start = 0
step = 1
Sehingga:
np.arange(5)
setara secara konsep dengan:
np.arange(0, 5, 1)
8. Menggunakan Step Negatif
np.arange() juga dapat digunakan untuk membuat urutan angka menurun.
Contoh:
numbers = np.arange(10, 0, -2)
print(numbers)
Output:
[10 8 6 4 2]
Artinya:
Mulai dari 10
Berhenti sebelum 0
Kurangi 2 setiap langkah
9. Membuat Array dengan Angka Acak
NumPy juga menyediakan modul random untuk menghasilkan angka acak atau pseudo-random.
Angka acak sangat berguna dalam berbagai kebutuhan Data Science dan Machine Learning, misalnya:
- eksperimen,
- simulasi,
- pembuatan data contoh,
- inisialisasi,
- pengujian algoritma.
NumPy menyediakan beberapa fungsi untuk menghasilkan angka acak.
10. Angka Bulat Acak dengan np.random.randint()
Fungsi np.random.randint() digunakan untuk menghasilkan angka bulat secara acak.
Sintaks sederhananya:
np.random.randint(low, high, size)
Contoh:
random_array = np.random.randint(
0,
10,
size=(3, 5)
)
print(random_array)
Contoh output:
[[2 7 4 1 8]
[5 0 3 9 6]
[1 8 2 4 7]]
Karena prosesnya acak, hasil yang Anda dapatkan dapat berbeda.
Memahami low dan high
Pada:
np.random.randint(0, 10)
angka yang dapat dihasilkan berada pada rentang:
0 sampai 9
Nilai high, yaitu 10, tidak termasuk.
Dengan kata lain:
low → termasuk
high → tidak termasuk
11. Menentukan Ukuran Array Acak
Parameter size digunakan untuk menentukan bentuk array yang ingin dibuat.
Contoh:
np.random.randint(
0,
10,
size=(3, 5)
)
berarti kita meminta array dengan:
3 baris × 5 kolom
Jika:
size=(2, 4)
maka hasilnya memiliki:
2 baris × 4 kolom
Jika:
size=5
maka hasilnya berupa array satu dimensi dengan 5 elemen.
12. Angka Desimal Acak dengan np.random.random()
Untuk menghasilkan angka desimal acak dalam rentang 0.0 hingga kurang dari 1.0, kita dapat menggunakan np.random.random().
Contoh:
random_array = np.random.random((5, 3))
print(random_array)
Contoh hasil:
[[0.23 0.71 0.42]
[0.18 0.95 0.37]
[0.64 0.12 0.83]
[0.45 0.56 0.09]
[0.77 0.31 0.68]]
Nilai yang sebenarnya akan berbeda karena dihasilkan secara acak.
Rentangnya adalah:
0.0 <= nilai < 1.0
13. Menggunakan np.random.rand()
Cara lain untuk menghasilkan angka desimal acak adalah np.random.rand().
Contoh:
random_array = np.random.rand(5, 3)
print(random_array)
Fungsinya mirip dengan:
np.random.random((5, 3))
Keduanya dapat menghasilkan array berisi angka floating point acak dalam rentang 0.0 hingga kurang dari 1.0.
Perbedaannya terutama terletak pada cara menentukan ukuran array.
Dengan random():
np.random.random((5, 3))
Sedangkan dengan rand():
np.random.rand(5, 3)
14. Perbandingan Fungsi Pembuatan Array
Berikut beberapa fungsi utama yang telah dipelajari:
| Fungsi | Kegunaan | Contoh |
|---|---|---|
np.array() | Membuat array dari data yang tersedia | np.array([1, 2, 3]) |
np.ones() | Membuat array berisi 1 | np.ones((2, 3)) |
np.zeros() | Membuat array berisi 0 | np.zeros((2, 3)) |
np.arange() | Membuat array berdasarkan rentang | np.arange(0, 10, 2) |
np.random.randint() | Membuat angka integer acak | np.random.randint(0, 10, size=5) |
np.random.random() | Membuat angka float acak | np.random.random((2, 3)) |
np.random.rand() | Membuat angka float acak | np.random.rand(2, 3) |
15. Membandingkan Jenis Array
Kita dapat melihat perbedaan masing-masing fungsi melalui contoh berikut:
import numpy as np
array_manual = np.array([1, 2, 3])
array_ones = np.ones((2, 3))
array_zeros = np.zeros((2, 3))
array_range = np.arange(0, 10, 2)
array_random_int = np.random.randint(
0,
10,
size=(2, 3)
)
array_random_float = np.random.random((2, 3))
Sekarang kita memiliki beberapa jenis array dengan karakteristik berbeda.
Secara konsep:
np.array()
↓
Data yang kita tentukan
np.ones()
↓
Semua nilai = 1
np.zeros()
↓
Semua nilai = 0
np.arange()
↓
Urutan angka
np.random.randint()
↓
Integer acak
np.random.random()
↓
Float acak
16. Memeriksa Shape Array
Setelah membuat array, biasakan memeriksa bentuknya menggunakan .shape.
Contoh:
array_ones = np.ones((2, 3))
print(array_ones.shape)
Output:
(2, 3)
Untuk array random:
array_random = np.random.randint(
0,
10,
size=(3, 5)
)
print(array_random.shape)
Output:
(3, 5)
Memeriksa .shape sangat penting sebelum melakukan operasi lebih lanjut.
17. Memeriksa Ukuran dan Dimensi
Selain .shape, kita dapat menggunakan atribut yang telah dipelajari pada materi sebelumnya.
Contoh:
array_random = np.random.randint(
0,
10,
size=(3, 5)
)
print("Shape:", array_random.shape)
print("Dimensions:", array_random.ndim)
print("Size:", array_random.size)
print("Data type:", array_random.dtype)
Hasilnya secara konsep:
Shape: (3, 5)
Dimensions: 2
Size: 15
Data type: int64
Dengan kebiasaan ini, kita dapat langsung memahami karakteristik array yang baru dibuat.
18. Menggunakan Shift + Tab di Jupyter Notebook
Ketika menggunakan Jupyter Notebook, kita dapat melihat dokumentasi fungsi secara langsung.
Misalnya:
np.ones(
Letakkan kursor di dalam tanda kurung dan tekan:
Shift + Tab
Jupyter akan menampilkan informasi mengenai fungsi tersebut.
Hal yang biasanya dapat kita lihat antara lain:
- nama fungsi,
- parameter,
- dokumentasi singkat,
- informasi mengenai penggunaan fungsi.
Teknik ini sangat berguna ketika kita lupa parameter sebuah fungsi.
19. Membaca Dokumentasi sebagai Kebiasaan Belajar
Kita tidak perlu menghafalkan seluruh fungsi NumPy.
Sebagai programmer, kemampuan menemukan dan membaca dokumentasi justru lebih penting.
Misalnya kita lupa bagaimana menggunakan:
np.random.randint()
Daripada mencoba menghafalnya, kita dapat memeriksa dokumentasinya.
Kebiasaan yang baik:
Lupa fungsi
↓
Cari dokumentasi
↓
Periksa parameter
↓
Buat contoh sederhana
↓
Jalankan kode
↓
Amati hasil
Dengan pendekatan ini, kita dapat mempelajari library baru dengan lebih mandiri.
20. Contoh Praktik Lengkap
Berikut contoh yang menggabungkan berbagai cara membuat array:
import numpy as np
# Array dari list
array_manual = np.array([1, 2, 3, 4, 5])
# Array berisi satu
array_ones = np.ones((2, 3))
# Array berisi nol
array_zeros = np.zeros((2, 3))
# Array berdasarkan rentang
array_range = np.arange(0, 10, 2)
# Array integer acak
array_random_int = np.random.randint(
0,
10,
size=(3, 5)
)
# Array float acak
array_random_float = np.random.random((3, 5))
print("Manual:")
print(array_manual)
print("\nOnes:")
print(array_ones)
print("\nZeros:")
print(array_zeros)
print("\nRange:")
print(array_range)
print("\nRandom Integer:")
print(array_random_int)
print("\nRandom Float:")
print(array_random_float)
Cobalah menjalankan kode tersebut beberapa kali.
Perhatikan bahwa hasil dari array random dapat berubah setiap kali kode dijalankan.
21. Randomness dan Reproducibility
Ketika menggunakan angka acak dalam eksperimen, terkadang kita ingin mendapatkan hasil yang sama setiap kali kode dijalankan.
Untuk itu, kita dapat menggunakan random seed.
Contoh dengan API random modern NumPy:
rng = np.random.default_rng(42)
random_array = rng.integers(
0,
10,
size=(3, 5)
)
print(random_array)
Dengan seed yang sama:
42
generator akan menghasilkan urutan angka yang dapat direproduksi.
Konsep reproducibility sangat penting dalam eksperimen Data Science dan Machine Learning karena kita ingin dapat menjalankan kembali eksperimen dan memperoleh hasil yang konsisten.
22. Kesalahan yang Sering Terjadi
Beberapa kesalahan umum ketika mulai membuat NumPy array antara lain:
Salah Memahami stop pada np.arange()
Perhatikan:
np.arange(0, 10, 2)
Hasilnya:
[0 2 4 6 8]
Bukan:
[0 2 4 6 8 10]
Karena nilai stop tidak termasuk.
Salah Menentukan size
Contoh:
np.random.randint(
0,
10,
size=(3, 5)
)
menghasilkan 3 baris dan 5 kolom.
Pastikan shape yang diberikan sesuai dengan kebutuhan.
Menganggap Hasil Random Selalu Sama
Contoh:
np.random.randint(0, 10, size=5)
dapat menghasilkan nilai berbeda setiap kali dijalankan.
Jika membutuhkan hasil yang dapat direproduksi, gunakan random seed.
23. Hubungan dengan Machine Learning
Kemampuan membuat array merupakan dasar penting untuk Machine Learning.
Data Machine Learning sering direpresentasikan dalam bentuk numerik seperti:
[
[10, 20, 30],
[40, 50, 60],
[70, 80, 90]
]
Struktur tersebut dapat direpresentasikan menggunakan NumPy array.
Kemudian array dapat digunakan dalam berbagai proses seperti:
Data
↓
NumPy Array
↓
Transformasi
↓
Preprocessing
↓
Machine Learning Model
Semakin memahami cara membuat dan memanipulasi array, semakin mudah memahami operasi data yang digunakan dalam Machine Learning.
24. Ringkasan
NumPy menyediakan banyak fungsi untuk membuat array dengan cepat.
Beberapa fungsi penting yang telah dipelajari:
np.array()untuk membuat array dari data seperti Python list.np.ones()untuk membuat array berisi1.np.zeros()untuk membuat array berisi0.np.arange()untuk membuat array berdasarkan rentang angka.np.random.randint()untuk membuat integer acak.np.random.random()untuk membuat float acak antara0.0dan kurang dari1.0.np.random.rand()sebagai cara lain membuat float acak.random_stateatau seed digunakan untuk membantu menghasilkan eksperimen yang dapat direproduksi.
Hal yang tidak kalah penting adalah membiasakan diri membaca dokumentasi fungsi menggunakan Jupyter Notebook maupun dokumentasi resmi NumPy.
Checklist
Sebelum melanjutkan ke materi berikutnya, pastikan Anda sudah memahami:
- Cara membuat NumPy array dari Python list.
- Cara menggunakan
np.ones(). - Cara menggunakan
np.zeros(). - Cara menggunakan
np.arange(). - Perbedaan
start,stop, danstep. - Cara menggunakan
np.random.randint(). - Cara menentukan
sizepada array random. - Cara menggunakan
np.random.random(). - Perbedaan
np.random.random()dannp.random.rand(). - Cara memeriksa
.shape. - Cara memeriksa
.ndim,.size, dan.dtype. - Mengapa random seed penting untuk reproducibility.
- Cara menggunakan
Shift + Tabuntuk melihat dokumentasi di Jupyter Notebook. - Mengapa memahami dokumentasi lebih penting daripada sekadar menghafalkan fungsi.