Menu
CoddyTech

Tipe NumPy

Pelajaran 7 dari 18 dalam kursus Dasar-Dasar NumPy di Coddy.

Program harus mengalokasikan ruang yang cukup agar array berukuran tetap dapat menyimpan datanya secara internal. Bagaimana komputer dapat menentukan jumlah ruang yang harus dialokasikan?

Di sinilah dtype berperan. Setiap dtype memiliki nilai maksimum dan minimum yang memungkinkan mesin mengetahui jumlah ruang yang harus dialokasikan untuk setiap sel dalam array.  Ada banyak tipe Numpy.

Tipe int adalah bilangan bulat n-bit:

TipeMinMaksPangkatBit
np.int8-1281272**88
np.int16-32768327672**1616
np.int32-214748364821474836472**3232
np.int64-922337203685477580892233720368547758072**6464

Tipe float:

Tipe
np.float16
np.float32
np.float64
np.float128

Saya tidak dapat menunjukkan nilai minimum dan maksimum karena nilainya terlalu besar.

Untuk melihat sendiri nilai maksimum dan minimum, kamu dapat menggunakan numpy.iinfo(<i>type</i>) untuk tipe bilangan bulat dan numpy.finfo(<i>dtype</i>) untuk tipe float:

np.iinfo(np.int16).min
np.iinfo(np.int16).max

Mengapa kita perlu memperhatikan dtype?

Misalkan kita memiliki array yang setiap elemennya mewakili sebuah ruangan berisi orang. Program mencatat jumlah orang di setiap ruangan.

Mari tetapkan array bertipe np.int8:

rooms = np.array([125, 3, 127], dtype=np.int8)

Di sini ada 3 ruangan. Setiap ruangan memiliki angka bertipe np.int8. 

Ruangan terakhir memiliki 127 orang! 

Ini adalah nilai maksimum np.int8

Apa yang akan terjadi jika satu orang lagi masuk ke ruangan itu?

rooms[-1] += 1
print(rooms)

Output:

[ 125    3 -128]

Lihatlah! Dari 127, angkanya berubah menjadi -128. Ini bukan angka yang diharapkan. Karena itulah kita perlu memastikan bahwa kita menggunakan dtype yang tepat sesuai kebutuhan.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

challenge icon

Tantangan

Mudah

Buat fungsi bernama dtype_converter yang menerima jumlah bit untuk tipe tersebut dan sebuah nilai.

Fungsi tersebut mengembalikan array numpy berdimensi 0 (Ingat, array berdimensi 0 hanyalah satu nilai yang diteruskan ke np.array) dengan dtype yang ditentukan dan nilainya ditambah satu.

bits dapat berupa salah satu dari nilai berikut: 8, 16, 32, 64

Perhatikan output dengan saksama, beberapa kasus uji akan mengalami overflow!

Coba sendiri

import numpy as np

def dtype_converter(bits, value):
    try:
        if bits == 8:
            return np.array(value+1, dtype=np.int8)
        # Write your code here
    except:
        print("Overflow:", value+1)

Semua pelajaran di Dasar-Dasar NumPy

Latihan sendiri: Compiler Python online