Wenn Sie matplotlib.pyplot Sie sie als Streudiagramm dargestellt werden können, und eine grobe Annäherung an eine Sinuswelle erhalten.
Zum Beispiel mit Ihrem x- und y-Arrays:
import matplotlib.pyplot as plt
import numpy as np
X = np.random.rand(1000)*2
Y = np.sin(X)
plt.scatter(X,Y)
plt.show()
Sie werden mit etwas am Ende wie folgt:
EDIT Per Ihren Kommentar ich dies lief Sie:
sortx = np.argsort(X)
plt.plot(X[sortx], Y[sortx], marker='.')
plt.show()
Sie finden diese Annäherung erhalten:
Sie haben die argsort Indizes in X passieren, so dass er sie in der richtigen Reihenfolge Plots und das gleiche für Y, dass die Art und Weise Sie eine schöne glatte Linie bekommen (zumindest wo Ihre Daten am dichtesten sind.
Wenn Sie eine glatte Liniendarstellung der Sinuswelle wollen, dann könnte man einfach sagen:
z = np.arange(-6.28, 6.28, 0.1)
plt.plot(z, np.sin(z))
plt.show()
Sie werden mit diesem Ende:
Offensichtlich möchten Sie vielleicht die einstellen x-Achse ticks, um Werte von Pi für eine bessere Darstellung darzustellen, aber ich denke, dass Sie die Idee bekommen.
Wenn Sie eine Funktion (zB 'sin') visualisieren möchten, wollen Sie nicht ein Zufallsvektor als 'X', Sie wollen über die 'X' Achse gleichmäßig verwenden 'np.linspace' Punkte zu probieren. Um sie zu visualisieren, verwenden Sie [Matplotlib] (http://matplotlib.org/). –
Eigentlich geht es wie eine Sinuskurve zu sehen, aber da x Werte von einer Normalverteilung kommen, wird es weniger Punkte, wie Sie aus dem Mittelwert der Normalverteilung wegbewegen (0). Es wäre jedoch sinnvoller, np.linspace anstelle von np.random zu verwenden.randn – ayhan
Warum wollen Sie zufällige Werte für 'X' verwenden? –