Integer types let us store whole numbers in different sizes. This helps save memory and match the data we have.
Integer types (int8, int16, int32, int64) in NumPy
numpy.int8 numpy.int16 numpy.int32 numpy.int64
These are data types in numpy for integers of different sizes.
int8 uses 8 bits, int16 uses 16 bits, int32 uses 32 bits, and int64 uses 64 bits.
import numpy as np x = np.array([10, 20, 30], dtype=np.int8)
y = np.array([1000, 2000, 3000], dtype=np.int16)
z = np.array([100000, 200000, 300000], dtype=np.int32)
w = np.array([10000000000, 20000000000, 30000000000], dtype=np.int64)
This program creates numpy arrays with different integer types and prints their values and types. It shows how each integer type can hold different ranges of numbers.
import numpy as np # Create arrays with different integer types arr_int8 = np.array([127, -128, 0], dtype=np.int8) arr_int16 = np.array([32767, -32768, 0], dtype=np.int16) arr_int32 = np.array([2147483647, -2147483648, 0], dtype=np.int32) arr_int64 = np.array([9223372036854775807, -9223372036854775808, 0], dtype=np.int64) print('int8 array:', arr_int8) print('int16 array:', arr_int16) print('int32 array:', arr_int32) print('int64 array:', arr_int64) # Show the data types print('Data type of arr_int8:', arr_int8.dtype) print('Data type of arr_int16:', arr_int16.dtype) print('Data type of arr_int32:', arr_int32.dtype) print('Data type of arr_int64:', arr_int64.dtype)
int8 can store numbers from -128 to 127.
int16 can store numbers from -32768 to 32767.
Using the wrong integer size can cause overflow or data loss.
Integer types in numpy let you choose how much memory to use for whole numbers.
Different sizes (int8, int16, int32, int64) store different ranges of numbers.
Choosing the right integer type helps save memory and avoid errors.
Practice
Solution
Step 1: Understand integer type sizes
Each numpy integer type uses a different number of bits: int8 uses 8 bits, int16 uses 16 bits, int32 uses 32 bits, and int64 uses 64 bits.Step 2: Identify the smallest size
Since 8 bits is the smallest size,int8uses the least memory.Final Answer:
int8 -> Option CQuick Check:
Smallest bits = int8 [OK]
- Confusing int8 with int16 or larger types
- Thinking int64 uses less memory
- Assuming int32 is smallest
int16?Solution
Step 1: Recall numpy array creation syntax
To specify the data type, use the parameterdtypewith a string or numpy type.Step 2: Check each option
np.array([1, 2, 3], dtype='int16') usesdtype='int16', which is correct. Options B and D usetypewhich is invalid. np.array([1, 2, 3], dtype=int8) usesdtype=int8, which is valid syntax but wrong type.Final Answer:
np.array([1, 2, 3], dtype='int16') -> Option AQuick Check:
Use dtype='int16' to set type [OK]
- Using 'type' instead of 'dtype'
- Passing dtype without quotes for string type
- Confusing int8 and int16 types
import numpy as np arr = np.array([127, 128], dtype='int8') print(arr)
Solution
Step 1: Understand int8 range
int8 can store values from -128 to 127. The value 128 is outside this range.Step 2: Observe overflow behavior
When 128 is stored in int8, it wraps around to -128 due to overflow.Final Answer:
[127 -128] -> Option BQuick Check:
int8 overflow wraps 128 to -128 [OK]
- Expecting 128 to store correctly in int8
- Assuming error raised on overflow
- Thinking 128 becomes 0
import numpy as np arr = np.array([1000, 2000], dtype='int8') print(arr)
Solution
Step 1: Check dtype and values
The array usesint8which can only hold -128 to 127, but values 1000 and 2000 are much larger.Step 2: Understand numpy overflow behavior
Instead of error, numpy silently wraps values using modulo 256, causing overflow.Final Answer:
Values overflow and wrap around silently -> Option DQuick Check:
int8 overflow wraps large values silently [OK]
- Expecting ValueError on overflow
- Thinking values print as is
- Confusing syntax error with dtype
Solution
Step 1: Identify the value range needed
The data ranges from -30000 to 30000, so the integer type must cover at least this range.Step 2: Check integer type ranges
int8 covers -128 to 127 (too small), int16 covers -32768 to 32767 (fits range), int32 and int64 cover larger ranges but use more memory.Step 3: Choose the smallest type that fits
int16 fits the range and uses less memory than int32 or int64.Final Answer:
int16 -> Option AQuick Check:
int16 range covers ±30000 efficiently [OK]
- Choosing int8 which is too small
- Picking int64 unnecessarily
- Ignoring negative range limits
Ready to prove it?
Pass the test and this pattern moves unknown
