Tôi có xu hướng lập chỉ mục mảng cố định (ma trận) với dấu ngoặc vuông, nhưng tôi đã nhận thấy khi tôi muốn cắt mảng (ma trận), tôi phải sử dụng ký hiệu dấu phẩy. Tại sao điều này? Ví dụ,Tại sao lập chỉ mục các mảng có nhiều mảng với dấu ngoặc và dấu phẩy khác nhau về hành vi?
>>> x = numpy.array([[1, 2], [3, 4], [5, 6]])
>>> x
array([[1, 2],
[3, 4],
[5, 6]])
>>> x[1][1]
4 # expected behavior
>>> x[1,1]
4 # expected behavior
>>> x[:][1]
array([3, 4]) # huh?
>>> x[:,1]
array([2, 4, 6]) # expected behavior
Bạn cần hiểu những gì 'x [1]' hoặc 'x [:]' thực hiện trước khi hiểu 'x [1] [1]' hoặc 'x [:] [1]'. Hai dấu ngoặc kép được áp dụng tuần tự, với 2 cuộc gọi '__getitem__'. Nhưng trong 'x [:, 1]' cả hai trục được xem xét cùng nhau - bằng một cuộc gọi 'numpy'' __getitem__'. – hpaulj
Cảm ơn bạn @hpaulj, đây là câu trả lời tôi đang tìm kiếm. – BoltzmannBrain