Tôi muốn ánh xạ một numpy.array
từ NxM để NxMx3, nơi một vector của ba yếu tố là một chức năng của sự xâm nhập ban đầu:Mapping yếu tố khôn ngoan một mảng NumPy vào một mảng nhiều chiều
lambda x: [f1(x), f2(x), f3(x)]
Tuy nhiên, mọi thứ như numpy.vectorize
không cho phép thay đổi kích thước. Chắc chắn, tôi có thể tạo một dãy số không và tạo một vòng lặp (and it is what I am doing by now), nhưng nó không âm thanh không phải là Pythonic cũng không hiệu quả (như mọi vòng lặp trong Python).
Có cách nào tốt hơn để thực hiện thao tác theo nguyên tố trên numpy.array, tạo ra vec-tơ cho mỗi mục nhập không?
Nếu 'N' và' M' lớn hơn đáng kể so với 3, vòng lặp trên thứ nguyên thứ ba sẽ có ảnh hưởng không đáng kể đến hiệu suất. Và không có gì không phải là pythonic trong việc sử dụng cho các vòng lặp! Những gì không phải là rất numpythonic hoặc hiệu quả là sử dụng 'np.vectorize'. Bạn có thể thử chuyển đổi 'f1',' f2' và 'f3' thành một hàm duy nhất lấy mảng và mảng trả về. Không biết chức năng của bạn đang làm gì, bạn không thể biết liệu phương pháp này có phù hợp với vấn đề của bạn hay không. – Jaime
@Jaime Tôi đang lặp qua N và M, không phải 3. Vấn đề là chuyển đổi các số phức trong ba phao [R, G, B], vì vậy tôi có thể vẽ một hàm phức tạp (xem liên kết trong câu hỏi). –