Bird
Raised Fist0
NumPydata~10 mins

String type in NumPy - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a NumPy array of strings.

NumPy
import numpy as np
arr = np.array(['apple', 'banana', 'cherry'], dtype=[1])
print(arr)
Drag options to blanks, or click blank then click option'
Anp.str_
Bbool
Cfloat
Dint
Attempts:
3 left
💡 Hint
Common Mistakes
Using dtype='int' or dtype='float' for string arrays.
Using dtype=str which gives object dtype array.
2fill in blank
medium

Complete the code to create a fixed-length string array of length 5.

NumPy
import numpy as np
arr = np.array(['cat', 'dog', 'bird'], dtype=[1])
print(arr)
print(arr.dtype)
Drag options to blanks, or click blank then click option'
A'S5'
B'int32'
C'U10'
D'float64'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'U10' which is for Unicode strings, not byte strings.
Using numeric dtypes for string arrays.
3fill in blank
hard

Fix the error in the code to create a Unicode string array.

NumPy
import numpy as np
arr = np.array(['red', 'green', 'blue'], dtype=[1])
print(arr)
print(arr.dtype)
Drag options to blanks, or click blank then click option'
A'int64'
B'S10'
C'U10'
D'bool_'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'S10' which creates byte strings, not Unicode.
Using numeric or boolean dtypes for strings.
4fill in blank
hard

Fill both blanks to create a NumPy array of strings and check its type.

NumPy
import numpy as np
arr = np.array(['one', 'two', 'three'], dtype=[1])
print(type(arr[0]))  # Should print <class '[2]'>
Drag options to blanks, or click blank then click option'
A'U5'
Bnumpy.str_
Cstr
D'int32'
Attempts:
3 left
💡 Hint
Common Mistakes
Using Python's built-in str type instead of numpy.str_.
Using numeric dtype instead of string dtype.
5fill in blank
hard

Fill all three blanks to create a fixed-length byte string array and convert it to Unicode strings.

NumPy
import numpy as np
byte_arr = np.array(['a', 'bb', 'ccc'], dtype=[1])
unicode_arr = byte_arr.astype([2])
print(unicode_arr)
print(unicode_arr.dtype == [3])
Drag options to blanks, or click blank then click option'
A'S3'
Bstr
C'U3'
Dnp.str_
Attempts:
3 left
💡 Hint
Common Mistakes
Using Python's str instead of np.str_.
Confusing byte string dtype 'S3' with Unicode dtype 'U3'.

Practice

(1/5)
1. Which NumPy string type should you use to store Unicode text like emojis or accented characters?
easy
A. Use 'U' type for Unicode strings.
B. Use 'S' type for Unicode strings.
C. Use 'i' type for Unicode strings.
D. Use 'f' type for Unicode strings.

Solution

  1. Step 1: Understand NumPy string types

    NumPy has two main string types: 'S' for byte strings (ASCII) and 'U' for Unicode strings.
  2. Step 2: Identify correct type for Unicode

    Unicode strings require 'U' type to support characters beyond ASCII, like emojis or accented letters.
  3. Final Answer:

    Use 'U' type for Unicode strings. -> Option A
  4. Quick Check:

    Unicode text = 'U' type [OK]
Hint: Unicode needs 'U', ASCII uses 'S' type [OK]
Common Mistakes:
  • Using 'S' type for Unicode causes data loss
  • Confusing numeric types with string types
  • Assuming 'U' is for byte strings
2. Which of the following is the correct way to create a NumPy array of byte strings with length 5?
easy
A. np.array(['hello', 'world'], dtype='int5')
B. np.array(['hello', 'world'], dtype='U5')
C. np.array(['hello', 'world'], dtype='S5')
D. np.array(['hello', 'world'], dtype='float5')

Solution

  1. Step 1: Identify byte string dtype syntax

    Byte strings use dtype='S' followed by the fixed length, e.g., 'S5' for length 5.
  2. Step 2: Check options for correct dtype

    np.array(['hello', 'world'], dtype='S5') uses 'S5', which is correct for byte strings of length 5.
  3. Final Answer:

    np.array(['hello', 'world'], dtype='S5') -> Option C
  4. Quick Check:

    Byte strings = 'S' + length [OK]
Hint: Byte strings use dtype='S' plus length number [OK]
Common Mistakes:
  • Using 'U' instead of 'S' for byte strings
  • Using invalid dtypes like 'int5' or 'float5'
  • Omitting the length number after 'S'
3. What will be the output of this code?
import numpy as np
arr = np.array(['cat', 'dog', 'elephant'], dtype='S5')
print(arr)
medium
A. ['cat' 'dog' 'eleph']
B. [b'cat' b'dog' b'eleph']
C. [b'cat' b'dog' b'elephant']
D. ['cat' 'dog' 'elephant']

Solution

  1. Step 1: Understand dtype='S5' effect

    Using dtype='S5' means fixed-length byte strings of length 5, so strings longer than 5 characters get truncated.
  2. Step 2: Check each string length and truncation

    'cat' and 'dog' fit within 5 bytes, but 'elephant' is longer and gets truncated to 'eleph'.
  3. Final Answer:

    [b'cat' b'dog' b'eleph'] -> Option B
  4. Quick Check:

    Fixed length 5 truncates 'elephant' to 'eleph' [OK]
Hint: Fixed-length strings truncate longer text [OK]
Common Mistakes:
  • Expecting full 'elephant' without truncation
  • Confusing byte strings with Unicode strings
  • Ignoring the 'b' prefix for byte strings
4. The following code throws an error. What is the main issue?
import numpy as np
arr = np.array(['a', 'b', 'c'], dtype='U2')
arr[0] = 'abc'
medium
A. The array must be created with dtype='S3' to assign 'abc'.
B. You cannot assign strings to NumPy arrays.
C. dtype='U2' only supports byte strings, not Unicode.
D. The string 'abc' is longer than dtype='U2' allows.

Solution

  1. Step 1: Understand dtype='U2' limitation

    dtype='U2' means Unicode strings of fixed length 2 characters only.
  2. Step 2: Check assigned string length

    Trying to assign 'abc' (3 characters) to an element that only allows 2 characters causes truncation or error.
  3. Final Answer:

    The string 'abc' is longer than dtype='U2' allows. -> Option D
  4. Quick Check:

    Fixed-length Unicode strings truncate or error on longer input [OK]
Hint: Check string length vs dtype length before assignment [OK]
Common Mistakes:
  • Thinking dtype='U2' supports any length string
  • Believing NumPy arrays can't hold strings
  • Confusing byte strings ('S') with Unicode ('U')
5. You have a list of mixed-length Unicode strings: ['hi', 'hello', 'hey', 'hola']. You want to create a NumPy array that stores all strings without truncation. Which dtype should you choose?
hard
A. dtype='U5' because the longest string has 5 characters.
B. dtype='S5' because it supports Unicode strings up to length 5.
C. dtype='U4' because it is the default for Unicode strings.
D. dtype='S10' to allow extra space for all strings.

Solution

  1. Step 1: Find the longest string length

    The longest string is 'hello' with 5 characters.
  2. Step 2: Choose dtype to fit longest string

    Use dtype='U5' to store Unicode strings up to length 5 without truncation.
  3. Step 3: Avoid byte string dtype for Unicode

    Using 'S' type stores byte strings, not Unicode, so it may cause data loss.
  4. Final Answer:

    dtype='U5' because the longest string has 5 characters. -> Option A
  5. Quick Check:

    Unicode max length = dtype='U' + max length [OK]
Hint: Match dtype length to longest Unicode string [OK]
Common Mistakes:
  • Using 'S' dtype for Unicode strings
  • Choosing dtype length smaller than longest string
  • Assuming default dtype fits all strings
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard