Tôi muốn chọn các phần tử nhất định của một mảng và thực hiện phép tính trung bình có trọng số dựa trên các giá trị. Tuy nhiên, bằng cách sử dụng một điều kiện lọc, phá hủy cấu trúc ban đầu của mảng. arr
có hình dạng (2, 2, 3, 2)
được chuyển thành mảng 1 chiều. Điều này là không sử dụng đối với tôi, vì không phải tất cả các yếu tố này cần phải được kết hợp sau này với nhau (nhưng con của chúng). Làm thế nào tôi có thể tránh được việc làm phẳng này?Mất kích thước mảng mờ khi che mặt
>>> arr = np.asarray([ [[[1, 11], [2, 22], [3, 33]], [[4, 44], [5, 55], [6, 66]]], [ [[7, 77], [8, 88], [9, 99]], [[0, 32], [1, 33], [2, 34] ]] ])
>>> arr
array([[[[ 1, 11],
[ 2, 22],
[ 3, 33]],
[[ 4, 44],
[ 5, 55],
[ 6, 66]]],
[[[ 7, 77],
[ 8, 88],
[ 9, 99]],
[[ 0, 32],
[ 1, 33],
[ 2, 34]]]])
>>> arr.shape
(2, 2, 3, 2)
>>> arr[arr>3]
array([11, 22, 33, 4, 44, 5, 55, 6, 66, 7, 77, 8, 88, 9, 99, 32, 33,
34])
>>> arr[arr>3].shape
(18,)
Xây dựng về việc tính toán những gì bạn cần để làm với các giá trị này. Bạn sẽ sử dụng cấu trúc 'arr' như thế nào? – hpaulj