N = 100 # number of points per class
D = 2 # dimensionality
K = 3 # number of classes
X = np.zeros((N*K,D))
y = np.zeros(N*K, dtype='uint8')
for j in xrange(K):
ix = range(N*j,N*(j+1))
r = np.linspace(0.0,1,N) # radius
t = np.linspace(j*4,(j+1)*4,N) + np.random.randn(N)*0.2 # theta
X[ix] = np.c_[r*np.sin(t), r*np.cos(t)]
y[ix] = j
fig = plt.figure()
plt.scatter(X[:, 0], X[:, 1], c=y, s=40, cmap=plt.cm.Spectral)
plt.xlim([-1,1])
plt.ylim([-1,1])
plt.show()
这是代码,来自这里:https://cs.stanford.edu/people/karpathy/cs231nfiles/minimal_net.html
我在这里唯一不了解的是这一行:
plt.scatter(X[:, 0], X[:, 1], c=y, s=40, cmap=plt.cm.Spectral)
我们如何使用列表来做到这一点(X [:, 0])以及此操作的作用?
答案 0 :(得分:1)
X不是内置的python列表。这是一个numpy数组。看看zeros
的文档
https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.zeros.html
和索引数组: https://docs.scipy.org/doc/numpy-1.13.0/reference/arrays.indexing.html