2012-12-20 46 views
5

có thể đây là một câu hỏi dễ, nhưng có cách nào nhanh chóng để sao chép các phần tử trong một mảng không? Nó sẽ làm việc như theo cách này cho 3D:Các yếu tố trùng lặp nhiều phần

1 2 3 
4 5 6 
7 8 9 

1 1 2 2 3 3 
1 1 2 2 3 3 
4 4 5 5 6 6 
4 4 5 5 6 6 
7 7 8 8 9 9 
7 7 8 8 9 9 

Tôi đã thử nó với 3 lồng cho-vòng, nhưng điều này thật sự rất chậm.

Trả lời

6
>>> a = np.array([[1, 2, 3], 
        [4, 5, 6], 
        [7, 8, 9]]) 
>>> np.repeat(np.repeat(a, 2, 0), 2, 1) 

array([[1, 1, 2, 2, 3, 3], 
     [1, 1, 2, 2, 3, 3], 
     [4, 4, 5, 5, 6, 6], 
     [4, 4, 5, 5, 6, 6], 
     [7, 7, 8, 8, 9, 9], 
     [7, 7, 8, 8, 9, 9]]) 
+0

Giải pháp tuyệt vời! Nhưng tôi đã tìm ra rằng hàm này thay đổi dtype từ float64 thành float32. Tôi có thể tránh điều này không? – Christian

+1

@Christian - nó không thay đổi dtype cho tôi. – eumiro

+0

xin lỗi, lỗi của tôi - Tôi đã sử dụng một chức năng khác đã phá hủy kiểu dtype. cảm ơn! :) – Christian

Các vấn đề liên quan