Có thể thực hiện phân bổ tối thiểu/tối đa tại chỗ với mảng nhiều chiều NumPy mà không cần sao chép thêm không?NumPy min/max tại chỗ gán
Say, a
và b
là hai mảng NumPy 2D và tôi muốn có a[i,j] = min(a[i,j], b[i,j])
cho tất cả i
và j
.
Một cách để làm điều này là:
a = numpy.minimum(a, b)
Tuy nhiên, theo các tài liệu, numpy.minimum
tạo và trả về một mảng mới:
numpy.minimum (x1, x2 [, ra])
Tối thiểu yếu tố mảng yếu tố.
So sánh hai mảng và trả về một mảng mới chứa minima yếu tố.
Vì vậy, trong đoạn code trên, nó sẽ tạo ra một mảng tạm thời mới (tối thiểu a
và b
), sau đó gán nó vào a
và vứt bỏ nó, phải không?
Có cách nào để thực hiện điều gì đó như a.min_with(b)
sao cho kết quả tối thiểu được gán trở lại a
tại chỗ?
Thực tế nó có tham số thứ ba. Cảm ơn! :) – alveko
Nó sẽ cải thiện câu trả lời một chút để in 'id (a)' trước và sau. –
@ jwpat7: Tôi không bận tâm vì không có cách nào đơn giản chỉ cần gọi một hàm có thể rebind 'a' để trỏ đến một đối tượng khác. – NPE