Tôi đã một mảng mà trông như thế này ví dụ:Python mảng NumPy thay thế
array([[ 1, 1, 2, 0, 4],
[ 5, 6, 7, 8, 9],
[10, 0, 0, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 0, 24],
[25, 26, 27, 28, 29],
[30, 31, 32, 33, 34],
[35, 36, 37, 38, 39],
[40, 41, 42, 43, 44],
[45, 46, 47, 48, 49]])
Tôi có mảng khác hai mà cũng giống như:
array([[ 0, 0, 0, 0],
[ 0, 0, 0, 0],
[ 0, 2891, 0, 0],
[ 0, 0, 0, 0],
[ 0, 0, 0, 2891]])
và
array([[ 0, 0, 0, 643],
[ 0, 0, 0, 0],
[ 0, 0, 643, 0],
[ 0, 0, 0, 0],
[ 0, 0, 0, 0]])
gì Tôi muốn là chọn giá trị 2891 từ mảng thứ 2 đến mảng đầu tiên ở vị trí tương ứng và cũng 643 từ mảng thứ ba tới linh sam st mảng ở vị trí tương ứng để các mảng cuối cùng sẽ trông như thế này:
array([[ 1, 1, 2, 643, 4],
[ 5, 6, 7, 8, 9],
[ 10, 2891, 643, 13, 14],
[ 15, 16, 17, 18, 19],
[ 20, 21, 22, 2891, 24],
[ 25, 26, 27, 28, 29],
[ 30, 31, 32, 33, 34],
[ 35, 36, 37, 38, 39],
[ 40, 41, 42, 43, 44],
[ 45, 46, 47, 48, 49]])
Cho đến nay tôi đã cố gắng lệnh này:
np.place(a,a<1, np.amax(b))
nơi a
đề cập đến mảng đầu tiên và b
gọi đến Mảng thứ hai. Những gì nó làm nó chỉ thay thế tất cả các giá trị 0 với giá trị 2891. Ai đó có thể giúp đỡ?
có thể nhanh hơn để lưu trữ 'arr1.max() '/' arr2.max' – jamylak
thnax cho câu trả lời của bạn. Tôi hiểu lời giải thích của câu trả lời thứ hai đó là lý do tại sao tôi chấp nhận câu trả lời đó. Nhưng bạn cũng làm việc. – user2095624
Hãy cẩn thận có một vài khác biệt giữa các câu trả lời của chúng tôi. Tôi chọn giá trị tối đa và thay thế chúng Trong khi chúng chọn những giá trị khác 0 và sau đó thay thế chúng. Nếu có hai loại số không khác trong mảng thứ hai hoặc thứ ba của bạn, đầu ra sẽ khác nhau. – waitingkuo