wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Numpy

Total questions: 50

Worksheet time: 4hrs 10mins

Name
Class
Date
1.
a)

[1, 2, 1, 2]

[2 4]

b)

[1, 2, 1, 2]

[1, 2, 1, 2]

c)

[1, 2, 1, 2]

[2, 4]

d)

[1, 2, 1, 2]

[1 2 1 2]

2.
a)

12.0

b)

18.0

c)

6.0

d)

0.0

3.
a)

12

b)

8

c)

20

d)

Error

4.
a)

Lỗi ValueError

b)

(2, 2)

2

c)

(2, 2)

3

d)

(2, )

1

5.
a)

102

b)

150

c)

173

d)

Error

6.
a)

10

b)

18

c)

26

d)

28

7.
a)

9

b)

3

c)

7

d)

0

8.
a)

4.0

b)

1.0

c)

2.0

d)

3.0

9.
a)

Lỗi RuntimeWarning

b)

2

c)

0

d)

1

10.
a)
  1. float64

1.0

[ 1 2 -3]

b)
  1. int64

1

[ 1 2 -3]

c)
  1. float64

1

[ 1 2 -4]

d)
  1. object

1.0

[ 1 2 -4]

11.
a)

a.transpose(1, 2, 0)

b)

a.transpose(0, 2, 1)

c)

a.transpose(2, 0, 1)

d)

a.transpose(2, 1, 0)

12.
a)

print(b[3, 1, 0])

b)

print(b[0, 1, 3])

c)

print(b[3, 0, 1])

d)
  1. print(b[1, 3, 0])

13.
a)

[[0 1 2 3] [12 13 14 15]]

b)

[[0 4 8] [12 16 20]]

c)

[[0 1] [2 3] [4 5]]

d)

[[0 12] [4 16] [8 20]]

14.
a)

(3, 6)

b)

Lỗi ValueError

c)

(9, 4)

d)

(3, 5)

15.
a)
  1. Lỗi IndexError

b)

Lỗi Dimension Mismatch

c)

6

d)

7

16.
a)

Lỗi ValueError

b)

[1 2 3 4]

c)

[[1 2] [3 4]]

d)

[1 2 3]

17.
a)

b = b.swapaxes(0, 1)

b)

b = b.T

c)

b = b.transpose(1, 2, 0)

d)

b = b.swapaxes(1, 2)

18.
a)

1

b)

4

c)

3

d)

2

19.
a)

[[9 20 21] [11 22 23]]

b)

[[16 20] [18 22]]

c)

[[12 16] [14 18]]

d)

[[5 9] [7 11]]

20.
a)

Lỗi IndexError

b)

20

c)

8

d)

16

21.
a)

7

b)

99

c)

6

d)

Lỗi

22.
a)

[[0 3] [6 9]]

b)

[[0 6] [3 9]]

c)

[[0 1 2] [6 7 8]]

d)

[[0 2] [4 6]]

23.
a)

[[0 1 2] [3 4 5]]

b)

[[6 7 8] [9 10 11]]

c)

[[3 4 5] [9 10 11]]

d)

Lỗi

24.
a)

(48, 16, 8)

b)

(16, 8, 48)

c)

(8, 16, 48)

d)

(16, 48, 8)

25.
a)

6

b)

18

c)

9

d)

21

26.
a)

[3 7]

b)

[4 5 6 7]

c)

3

d)

Lỗi

27.
a)

(2, 3, 2)

b)

(3, 2, 2)

c)

(2, 2, 3)

d)

(3, 3, 2)

28.
a)

[0 1 2 3 4 5]

b)

[0 2 4 1 3 5]

c)

[5 4 3 2 1 0]

d)

[0 3 1 4 2 5]

29.
a)

3

b)

7

c)

100

d)

11

30.
a)

[[0 4] [1 5]]

b)

[[0 1] [4 5]]

c)

[[0 2] [4 6]]

d)

[[0 4] [2 6]]

31.
a)

[[1 1 2 2] [3 3 4 4]]

b)

[[1 2] [1 2] [3 4] [3 4]]

c)

[1 1 2 2 3 3 4 4]

d)

Báo lỗi (Error) vì thiếu tham số axis.

32.
a)

np.repeat(a, 2, axis=0)

b)

np.repeat(a, 2, axis=1)

c)

np.tile(a, 2)

d)

np.tile(a, (1, 2))

33.
a)

out1 là [0 0 1 1], còn out2 là [0 1 0 1]

b)

out1 là [0 1 0 1], còn out2 là [0 0 1 1]

c)

Hai lệnh cho kết quả giống hệt nhau.

d)

Cả hai lệnh đều báo lỗi cú pháp.

34.
a)

[5 10 5 10]

b)

[5 5 10] 

c)

[5 10 10]

d)

Báo lỗi vì hàm repeat không nhận tham số là List.

35.
a)

(2, 6)

b)

(4, 2)

c)

(4, 6)

d)

(2, 2, 2, 3)

36.

Trong NumPy, cặp kích thước (shape) nào sau đây KHÔNG thể thực hiện Broadcasting với nhau?

a)

A có shape (4, 3) và B có shape (1, 3)

b)

A có shape (2, 1, 3) và B có shape (3,)

c)

A có shape (4, 3) và B có shape (4,)

d)

A có shape (5, 5) và B có shape (1,)

37.

 Cho mảng a có shape (8, 1, 6, 1) và mảng b có shape (7, 1, 5). Kích thước (shape) của mảng kết quả "a + b" sẽ là bao nhiêu?

a)

(8, 7, 6, 5)

b)

(8, 1, 6, 5)

c)

(15, 2, 7, 6)

d)

Báo lỗi (ValueError)

38.

Giả sử mảng "arr" có kích thước (10, 5). Bạn muốn trừ đi giá trị trung bình của từng HÀNG (mỗi hàng trừ đi trung bình của chính nó). Dòng code nào sau đây là ĐÚNG và an toàn nhất?

a)

arr - arr.mean(axis=1)

b)

arr - arr.mean(axis=0)

c)

arr - arr.mean(axis=1, keepdims=True)

d)

arr - arr.mean()

39.
a)

[1 12 23]

b)

[[1 2] [11 12] [21 22]]

c)

[[1 2 10 20 20 40]] 

d)

Báo lỗi vì kích thước không khớp.

40.

Bạn đang xử lý một bộ dữ liệu hình ảnh có kích thước (shape) là (100, 32, 32, 3) (tương ứng với: 100 ảnh, chiều cao 32, chiều rộng 32, 3 kênh màu RGB). Bạn muốn cộng thêm một lớp "nhiễu" (noise) vào bộ dữ liệu này. Kích thước (shape) nào sau đây của mảng nhiễu noise là HỢP LỆ để thực hiện phép cộng broadcasting trực tiếp?

a)

noise có shape (100, 32)

b)

noise có shape (32, 3)

c)

noise có shape (32, 32, 3)

d)

noise có shape (100,)

41.

Cho mảng arr = np.array([1, 2, 3, 4, 5]). Nếu thực hiện s = arr[1:4] rồi gán s[0] = 99, giá trị của arr sẽ là gì?

a)

[1 2 3 4 5]

b)

[1 99 3 4 5]

c)

[99 2 3 4 5]

d)

[1 2 99 4 5]

42.

Cho ma trận 3D A có shape (4, 5, 6). Biểu thức nào sau đây tương đương với A[:, :, 0]?

a)
  • A[..., 0]

b)

A[0, ...]

c)

A[:, 0]

d)

A[0, 0, :]

43.

Khi sử dụng Fancy Indexing như arr[[0, 1, 2]], kết quả trả về là gì?

a)

Một bản Copy (bản sao) của dữ liệu.

b)

Một View (bản xem) của dữ liệu.

c)

Một con trỏ trỏ đến mảng gốc.

d)

Lỗi nếu các chỉ số không liên tiếp.

44.

Cho data = np.array([10, 20, 30, 40]). Lệnh data[data > 25] = 0 sẽ thực hiện điều gì?

a)
  • Thay đổi trực tiếp mảng gốc thành [10, 20, 0, 0].

b)

Tạo ra mảng mới [10, 20, 0, 0] và giữ nguyên data.

c)

Trả về mảng Boolean [False, False, True, True].

d)

Lỗi cú pháp vì không thể gán vào mảng Boolean.

45.

Trong mảng 3D cube, lệnh cube[1, ::-1, :] thực hiện điều gì?

a)

Lấy hàng cuối cùng của tất cả các tầng. 

b)

Đảo ngược toàn bộ các tầng trong mảng.

c)

Lấy tầng 1 và đảo ngược thứ tự các cột.

d)

Lấy tầng 1 và đảo ngược thứ tự các hàng của tầng đó.

46.

Giả sử A là mảng 2D. Sự khác biệt giữa A[1, 1] và A[1:2, 1:2] là gì?

a)
  • A[1, 1] là View, A[1:2, 1:2] là Copy.

b)

Cả hai đều trả về cùng một giá trị vô hướng.

c)

A[1, 1] trả về một giá trị vô hướng, A[1:2, 1:2] trả về mảng 2D.

d)

Không có sự khác biệt về kiểu dữ liệu.

47.

Làm thế nào để kiểm tra xem mảng b có dùng chung bộ nhớ với mảng a hay không?

a)
  • So sánh a == b.

b)

Dùng toán tử a is b.

c)

Dùng hàm np.shares_memory(a, b).

d)

Kiểm tra a.shape == b.shape.

48.

Cho arr = np.array([[1, 2], [3, 4]]). Lệnh arr[[0, 1], [0, 1]] trả về kết quả nào?

a)

[[1 2] [3 4]]

b)

[1 4]

c)

[1 2 3 4]

d)

[[1] [4]]

49.

Tại sao việc sửa đổi một View lại nguy hiểm trong lập trình dữ liệu?

a)
  • Vì không thể chuyển View thành mảng gốc được nữa. 

b)

Vì nó tốn nhiều bộ nhớ hơn bản Copy.

c)

Vì View có tốc độ truy xuất chậm hơn.

d)

Vì nó làm thay đổi dữ liệu của mảng gốc mà không có cảnh báo.

50.

Cách nào là an toàn nhất để tạo một lát cắt mà chắc chắn không ảnh hưởng đến mảng gốc?

a)
  • Sử dụng dấu : cho tất cả các chiều.

b)

Gán lại biến mới: new_arr = arr.

c)

Sử dụng arr.view().

d)

Sử dụng phương thức .copy()