Chcę wybrać określone elementy tablicy i wykonać obliczenia średniej ważonej na podstawie wartości. Jednak użycie warunku filtru niszczy oryginalną strukturę tablicy. arr
, który był w kształcie (2, 2, 3, 2)
został przekształcony w tablicę jednowymiarową. Nie przyda mi się to, ponieważ nie wszystkie te elementy muszą być ze sobą połączone później (ale pod nimi). Jak mogę uniknąć tego spłaszczenia?Utrata rozmiaru tablicy Numpy przy maskowaniu
>>> 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,)
Opracowanie na obliczeniach, które trzeba zrobić z tymi wartościami. W jaki sposób wykorzystasz strukturę 'arr'? – hpaulj