x
e y
são listas de 50 elementos. SV
é uma lista com 4 elementos.
Eu gostaria de representar graficamente apenas os elementos de x, y que estão nas posições SV. Por exemplo, se SV=[3,7,10,15]
eu gostaria de representar graficamente apenas x[3],x[7],x[10],x[15]
e y[3],y[7],y[10],y[15]
.
Assim, a lista SV indica a posição (não o valor) de x, y que desejo representar graficamente. Tentei algo assim, mas não consegui:
plt.scatter(x[SV],y[SV])
x
e y
precisam ser matrizes numpy, em vez de listas, para "indexação sofisticada":
In [11]: x = np.arange(100, step=2)
In [12]: x[SV]
Out[12]: array([ 6, 14, 20, 30])
In [13]: list(x)[SV] # doesn't work if a list
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-13-7dce2933b313> in <module>()
----> 1 list(x)[SV]
TypeError: list indices must be integers or slices, not list
ou seja, use o construtor np.array:
x, y = np.array(x), np.array(y)
plt.scatter(x[SV], y[SV])
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras