J'ai un jeu de données pour différentes espèces végétales, et j'ai séparé chaque espèce en np.array
. En essayant de générer des modèles gaussiens à partir de ces espèces, j'ai dû calculer les moyennes et les matrices de covariance pour chaque étiquette différente. Le problème est: lorsque vous utilisez np.cov()
dans l'une des étiquettes, la fonction déclenche l'erreur "L'objet 'float' n'a pas d'attribut 'shape'" et je n'arrive pas vraiment à comprendre d'où vient le problème. La ligne de code exacte J'utilise est le suivant:numpy.cov() exception: l'objet 'float' n'a pas d'attribut 'shape'
covx = np.cov(label0, rowvar=False)
Lorsque label0
est une ndarray numpy de forme (50,3), où les colonnes représentent les différentes variables et chaque rangée est une observation différente.
La trace d'erreur exacte est:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-81-277aa1d02ff0> in <module>()
2
3 # Get the covariances
----> 4 np.cov(label0, rowvar=False)
C:\Users\Matheus\Anaconda3\lib\site-packages\numpy\lib\function_base.py in cov(m, y, rowvar, bias, ddof, fweights, aweights)
3062 w *= aweights
3063
-> 3064 avg, w_sum = average(X, axis=1, weights=w, returned=True)
3065 w_sum = w_sum[0]
3066
C:\Users\Matheus\Anaconda3\lib\site-packages\numpy\lib\function_base.py in average(a, axis, weights, returned)
1143
1144 if returned:
-> 1145 if scl.shape != avg.shape:
1146 scl = np.broadcast_to(scl, avg.shape).copy()
1147 return avg, scl
AttributeError: 'float' object has no attribute 'shape'
Toute idée de ce qui se passe mal?
'label0' semble être un flottant plutôt qu'un tableau. –
Selon la documentation de ['np.cov'] (https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.cov.html), le paramètre doit avoir une ligne par variable et une colonne par observation, et non l'inverse. – jdehesa
Quelle est votre version de NumPy? – MSeifert