Desidero selezionare determinati elementi di una matrice ed eseguire un calcolo della media ponderata in base ai valori. Tuttavia, utilizzando una condizione di filtro, distrugge la struttura originale dell'array. arr
che era di forma (2, 2, 3, 2)
viene trasformato in un array 1-dimensionale. Questo non serve a me, poiché non tutti questi elementi devono essere combinati in seguito l'uno con l'altro (ma sottoinsiemi di essi). Come posso evitare questo appiattimento?Perdita della dimensione della matrice di Numpy durante il mascheramento
>>> 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,)
Elaborate sul calcolo di cui avete bisogno fare con questi valori. Come useresti la struttura 'arr'? – hpaulj