NumPy reshape: Ubah Bentuk Array (2026)
Blog/Tips & Trik/NumPy reshape: Ubah Bentuk Array (2026)

NumPy reshape: Ubah Bentuk Array (2026)

BimaBima
·8 Oktober 2026·9 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

NumPy reshape ngubah bentuk array tanpa ngubah isinya, misalnya dari 12 angka jadi grid 3 baris 4 kolom pakai arr.reshape(3, 4). Jumlah elemen sebelum dan sesudah harus sama. Kamu bisa pakai -1 di salah satu dimensi biar NumPy ngitung sendiri ukurannya, misalnya arr.reshape(-1, 4).

NumPy reshape itu cara ngubah bentuk array tanpa ngubah isinya. Deret 12 angka bisa jadi grid 3 baris 4 kolom pakai arr.reshape(3, 4).

Datanya tetap sama. Yang berubah cuma cara nyusunnya. Ini sering kepakai buat nyiapin data sebelum masuk ke hitungan matriks atau model.

Aku bahas cara pakainya, arti angka -1 yang bikin bingung, dan cara ngeflat array balik jadi 1 dimensi. Contohnya pakai data penjualan toko.

Apa itu reshape di NumPy?

Reshape ngubah bentuk array tanpa nambah atau ngurangin elemennya. Kamu kasih tau dimensi baru yang kamu mau, dan NumPy nyusun ulang angka yang sama ke bentuk itu. Syarat utamanya, jumlah elemen sebelum dan sesudah harus sama.

Kalau kamu belum kenal array NumPy, mulai dari dasar-dasar NumPy array dulu biar konsep shape-nya nempel. Reshape itu lanjutan langsung dari situ.

import numpy as np

arr = np.arange(12)   # [0 1 2 3 4 5 6 7 8 9 10 11]
arr.shape             # (12,)

reshaped = arr.reshape(3, 4)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]

Gimana cara pakai reshape?

Panggil .reshape() di array dan masukin dimensi barunya sebagai argumen. Buat array 2 dimensi, kasih dua angka: jumlah baris dan jumlah kolom. Hasil kali kedua angka itu harus sama dengan total elemen array asli.

arr = np.arange(12)

arr.reshape(3, 4)   # 3 baris, 4 kolom
arr.reshape(4, 3)   # 4 baris, 3 kolom
arr.reshape(2, 6)   # 2 baris, 6 kolom
arr.reshape(12, 1)  # jadi kolom tunggal

Semua ini valid karena 3x4, 4x3, 2x6, dan 12x1 sama-sama 12. NumPy ngisi angka baris per baris dari kiri ke kanan.

Apa arti reshape(-1) di NumPy?

Angka -1 nyuruh NumPy ngitung sendiri ukuran dimensi itu dari total elemen. Kamu pakai waktu tau satu dimensi tapi males ngitung yang lain. Cuma boleh ada satu -1 dalam sekali reshape.

arr = np.arange(12)

arr.reshape(-1, 4)   # NumPy isi jadi 3 baris
arr.reshape(2, -1)   # NumPy isi jadi 6 kolom
arr.reshape(-1)      # jadi 1 dimensi lagi

Di baris pertama, kamu bilang kolomnya 4, NumPy ngitung baris 12 / 4 = 3. Ini kepakai banget waktu jumlah baris data berubah-ubah tapi kolomnya tetap.

Gimana cara ngeflat array jadi 1 dimensi?

Pakai reshape(-1), atau fungsi khusus flatten() dan ravel(). Ketiganya ngeratain array multi dimensi jadi satu deret. Bedanya ada di soal salinan memori.

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

matrix.reshape(-1)  # [1 2 3 4 5 6]
matrix.flatten()    # [1 2 3 4 5 6]  selalu salinan baru
matrix.ravel()      # [1 2 3 4 5 6]  view kalau bisa

Kalau kamu nggak mau array asli ikut keubah, pakai flatten karena dia selalu bikin salinan. Ravel lebih hemat memori tapi bisa berbagi data dengan array asli.

CaraHasilSalinan?
reshape(-1)1 dimensiview kalau bisa
flatten()1 dimensiselalu salinan
ravel()1 dimensiview kalau bisa

Contoh kasus: data penjualan mingguan toko_berkah

Toko_berkah punya data penjualan harian 3 cabang selama 4 minggu, total 84 angka dalam satu deret panjang dari export sistem. Aku mau susun ulang jadi bentuk yang gampang dihitung.

data = np.arange(84)   # anggap ini 84 angka penjualan harian

# 3 cabang, 28 hari
per_cabang = data.reshape(3, -1)
per_cabang.shape   # (3, 28)

# rata-rata harian per cabang
per_cabang.mean(axis=1)

Dengan reshape(3, -1), aku cuma bilang ada 3 cabang, NumPy ngitung sendiri 28 hari per cabang. Habis itu rata-rata per baris langsung kasih performa tiap cabang.

Trik -1 ini yang bikin kode nggak perlu diubah walau jumlah harinya beda tiap export. Selama total elemen habis dibagi 3, reshape-nya tetap jalan.

Kesalahan umum saat pakai reshape

  • Jumlah elemen nggak cocok. Array 12 elemen nggak bisa jadi 3x5. Cek arr.size dulu, pastikan hasil kali dimensi baru sama persis.
  • Pakai lebih dari satu -1. NumPy cuma bisa ngitung satu dimensi otomatis. Dua -1 langsung error.
  • Lupa reshape balikin view. Ngubah hasil reshape bisa ngubah array asli. Tambahin .copy() kalau perlu terpisah.
  • Ketuker urutan baris dan kolom. reshape(3, 4) beda hasil dari reshape(4, 3). Pastikan urutannya sesuai maksud kamu.

FAQ

Apa arti angka -1?

NumPy ngitung sendiri dimensi itu dari total elemen. Cuma boleh satu -1 per reshape.

Kenapa error cannot reshape?

Jumlah elemen lama dan baru nggak cocok. Cek arr.size dan hasil kali dimensi barunya.

Bedanya flatten dan ravel?

Flatten selalu bikin salinan, ravel balikin view kalau bisa. Flatten lebih aman kalau nggak mau data asli keubah.

Lanjut praktek

Ringkasnya: reshape ngubah bentuk tanpa ngubah data, jumlah elemen harus tetap sama, dan -1 bikin NumPy ngitung satu dimensi otomatis.

Reshape sering jadi langkah persiapan sebelum data masuk perhitungan. Kalau data kamu dari file, baca cara baca CSV pakai pandas dulu. Detail lengkap parameter reshape ada di dokumentasi resmi NumPy.

Mau lanjut ngulik operasi array yang lebih dalam? Cek materi Python buat analis di Ngulik Data dan latih langsung di dataset sendiri.

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

NumPy Array: Dasar-Dasar untuk Analis Data (2026)
Tips & Trik
6 Oktober 2026•10 menit baca

NumPy Array: Dasar-Dasar untuk Analis Data (2026)

NumPy array bikin hitungan data di Python jauh lebih cepat dari list biasa. Ini dasar bikin, slicing, dan operasi array buat analis.

BimaBima
Alternatif iterrows yang Lebih Cepat di Pandas
Tips & Trik
3 Oktober 2026•8 menit baca

Alternatif iterrows yang Lebih Cepat di Pandas

iterrows nyaman ditulis tapi lambat. Ini urutan alternatif iterrows di pandas dari yang tercepat, plus benchmark biar kamu tau kapan pakai yang mana.

BimaBima
Vektorisasi vs Loop di Pandas: Mana Lebih Cepat
Tips & Trik
1 Oktober 2026•7 menit baca

Vektorisasi vs Loop di Pandas: Mana Lebih Cepat

Loop iterrows di data 100 ribu baris bisa makan 3 detik. Versi vektornya kelar di bawah 5 milidetik. Ini cara ubah loop lambat jadi operasi kolom yang ngebut.

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