0

Ich verweise das Codebeispiel hier (http://scikit-learn.org/stable/auto_examples/linear_model/plot_iris_logistic.html), und speziell durch diese Zeile verwechselt iris.data[:, :2], da iris.data ist 150 (Zeile) * 4 (Spalte) dimensional ich denke, es bedeutet, wählen alle Zeilen und die ersten beiden Spalten. Ich bitte hier um zu bestätigen, ob mein Verständnis korrekt ist, da ich mir Zeit nehme, aber solch ein offizielles Dokument zur Syntaxdefinition nicht finden kann.numpy.darray Syntax Verständnis für die Bestätigung

Eine andere Frage ist, verwende ich den folgenden Code, um # Zeilen und # Spalten zu erhalten, nicht sicher, ob besser elegante Wege? Mein Code ist mehr pythoneigener Stil und nicht sicher, ob numpy einen besseren Stil hat, um die zugehörigen Werte zu erhalten.

print len(iris.data) # for number of rows 
print len(iris.data[0]) # for number of columns 

Verwendung von Python 2.7 mit Miniconda-Interpreter.

print(__doc__) 


# Code source: Gaël Varoquaux 
# Modified for documentation by Jaques Grobler 
# License: BSD 3 clause 

import numpy as np 
import matplotlib.pyplot as plt 
from sklearn import linear_model, datasets 

# import some data to play with 
iris = datasets.load_iris() 
X = iris.data[:, :2] # we only take the first two features. 
Y = iris.target 

h = .02 # step size in the mesh 

logreg = linear_model.LogisticRegression(C=1e5) 

# we create an instance of Neighbours Classifier and fit the data. 
logreg.fit(X, Y) 

# Plot the decision boundary. For that, we will assign a color to each 
# point in the mesh [x_min, m_max]x[y_min, y_max]. 
x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5 
y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5 
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) 
Z = logreg.predict(np.c_[xx.ravel(), yy.ravel()]) 

# Put the result into a color plot 
Z = Z.reshape(xx.shape) 
plt.figure(1, figsize=(4, 3)) 
plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired) 

# Plot also the training points 
plt.scatter(X[:, 0], X[:, 1], c=Y, edgecolors='k', cmap=plt.cm.Paired) 
plt.xlabel('Sepal length') 
plt.ylabel('Sepal width') 

plt.xlim(xx.min(), xx.max()) 
plt.ylim(yy.min(), yy.max()) 
plt.xticks(()) 
plt.yticks(()) 

plt.show() 

Grüßen, Lin

+2

Sie haben Recht. Die erste Syntax wählt die ersten zwei Spalten/Features aus. Eine andere Möglichkeit, Dimensionen abzufragen, ist 'iris.data.shape' zu ​​betrachten. Dies ergibt ein n-dimensionales Tupel mit der Länge. –

+0

Dank @PankajDaga, wissen Sie, ob es ein offizielles Dokument gibt, wie man Dimensionen bezieht, und wählen Sub-Array (mein Beispiel) von 'ndarray' von' numpy'? –

+1

Sie können hier klicken: http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html –

Antwort

1

Sie haben Recht. Die erste Syntax wählt die ersten zwei Spalten/Features aus. Eine andere Möglichkeit, Dimensionen abzufragen, ist iris.data.shape. Dies ergibt ein n-dimensionales Tupel mit der Länge. Sie können eine Dokumentation finden Sie hier: http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html

import numpy as np 
x = np.random.rand(100, 200) 
# Select the first 2 columns 
y = x[:, :2] 
# Get the row length 
print (y.shape[0]) 
# Get the column length 
print (y.shape[1]) 
# Number of dimensions 
print (len(y.shape)) 
+0

Vielen Dank Pankaj, markieren Sie Ihre Antwort als Antwort . –

Verwandte Themen