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:
| Tipe | Min | Maks | Pangkat | Bit |
| np.int8 | -128 | 127 | 2**8 | 8 |
| np.int16 | -32768 | 32767 | 2**16 | 16 |
| np.int32 | -2147483648 | 2147483647 | 2**32 | 32 |
| np.int64 | -9223372036854775808 | 9223372036854775807 | 2**64 | 64 |
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).maxMengapa 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.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Tantangan
MudahBuat 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
2Pembuatan array N-Dimensi
Dimensi Lebih TinggiMemahami BentukMengisi dengan Nilai TetapTipe NumPyRentangMengubah BentukLatihan sendiri: Compiler Python online