Maison > Article > développement back-end > Explication détaillée des tableaux masqués Numpy
Ce qui suit est une explication détaillée des tableaux masqués Numpy, qui a une bonne valeur de référence et j'espère qu'elle sera utile à tout le monde. Jetons un coup d'œil ensemble
Les données sont souvent désordonnées et contiennent des caractères vides ou non traitables. Les tableaux masqués peuvent efficacement ignorer les points de données incomplets ou invalides. Le tableau masqué est constitué d'un tableau normal et d'un tableau booléen. Si le tableau booléen est True, cela signifie que la valeur correspondant à l'indice dans le tableau normal n'est pas valide. Sinon, False signifie que la valeur correspondant au tableau normal est valide. .
La méthode de création consiste à créer d'abord un tableau booléen, puis à créer un tableau masqué via les fonctions fournies par le package de sous-programmes numpy.ma. Le tableau masqué fournit diverses fonctions requises.
Créez une instance comme suit :
import numpy as np origin = np.arange(16).reshape(4,4) #生成一个4×4的矩阵 np.random.shuffle(origin) #随机打乱矩阵元素 random_mask = np.random.randint(0,2,size=origin.shape)#生成随机[0,2)的整数的4×4矩阵 mask_array = np.ma.array(origin,mask=random_mask)#生成掩码式矩阵 print(mask_array)
Résultat Comme suit :
[[12 13 -- 15] [8 9 10 --] [-- -- -- 3] [-- 5 6 --]]
est utilisé pour :
1. Prendre le logarithme d'un nombre négatif
import numpy as np triples = np.arange(0,10,3)#每隔3取0到10中的整数,(0,3,6,9) signs = np.ones(10)#(1,1,1,1,1,1,1,1,1) signs[triples] = -1#(-1,1,1,-1,1,1,-1,1,1,-1) values = signs * 77#(-77,77,77,-77,77,77,-77,77,77,-77) ma_log = np.ma.log(values)#掩码式取对数 print(ma_log)
Le résultat est :
[-- 4.343805421853684 4.343805421853684 -- 4.343805421853684 4.343805421853684 -- 4.343805421853684 4.343805421853684 --]
Ignorer les valeurs extrêmes
import numpy as np inside = np.ma.masked_outside(array,min,max)
Recommandations associées :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!