Gần đây tôi đã áp dụng giải pháp this để lấy trung bình mỗi N hàng ma trận. Mặc dù giải pháp hoạt động nói chung tôi gặp vấn đề khi được áp dụng cho một mảng 7x1. Tôi đã nhận thấy rằng vấn đề là khi sử dụng toán tử -=
. Để thực hiện một ví dụ nhỏ:Sự khác biệt giữa a - = b và a = a - b trong Python
import numpy as np
a = np.array([1,2,3])
b = np.copy(a)
a[1:] -= a[:-1]
b[1:] = b[1:] - b[:-1]
print a
print b
mà kết quả đầu ra:
[1 1 2]
[1 1 1]
Vì vậy, trong trường hợp của một mảng a -= b
tạo ra một kết quả khác nhau hơn a = a - b
. Tôi nghĩ cho đến bây giờ hai cách này giống hệt nhau. Sự khác biệt là gì?
Phương pháp tôi đề cập đến để tính tổng N hàng trong ma trận đang hoạt động, ví dụ: cho ma trận 7x4 nhưng không phải cho mảng 7x1?
Tôi thích câu trả lời này nhiều hơn cho câu trả lời hiện được chấp nhận. Nó sử dụng ngôn ngữ rất rõ ràng để hiển thị hiệu quả của việc sửa đổi các đối tượng biến đổi tại chỗ. Quan trọng hơn, đoạn cuối cùng trực tiếp nhấn mạnh tầm quan trọng của việc sửa đổi tại chỗ cho các chế độ xem chồng chéo, nên là bài học đưa về nhà từ câu hỏi này. – Reti43