Giả sử tôi đã xác định một mảng 3x3x3 NumPy vớiNumPy mảng đa chiều slicing
x = numpy.arange(27).reshape((3, 3, 3))
Bây giờ, tôi có thể nhận được một mảng chứa các (0,1) yếu tố của mỗi mảng con 3x3 với x[:, 0, 1]
, mà trả về array([ 1, 10, 19])
. Nếu tôi có một bộ (m, n) và muốn lấy phần tử (m, n) của mỗi mảng con (0,1) được lưu trữ trong một bộ tuple thì sao? Ví dụ, giả sử rằng tôi có t = (0, 1)
. Tôi đã thử x[:, t]
, nhưng nó không có hành vi đúng - nó trả về hàng 0 và 1 của mỗi mảng con. Giải pháp đơn giản nhất mà tôi đã tìm thấy là
x.transpose()[tuple(reversed(t))].transpose()
nhưng tôi chắc chắn phải có cách tốt hơn. Tất nhiên, trong trường hợp này, tôi có thể làm x[:, t[0], t[1]]
, nhưng điều đó không thể được khái quát hóa trong trường hợp tôi không biết có bao nhiêu kích thước x
và t
có.
mát, nhờ sự giúp đỡ (bạn cũng vậy, wim). Tôi tìm thấy nhiều ví dụ hơn cho s_ và slice tại [scipy] (http://www.scipy.org/Numpy_Example_List). Tôi nghĩ rằng tôi đã xem qua danh sách đó trước đây, nhưng không thấy bất cứ điều gì có vẻ phù hợp. – James