1. numpy.c_[]
和np.r_[]可视为兄弟函数,两者的功能为np.r_[]添加行,np.c_[]添加列。
a1 = np.array([[1, 2, 3], [4, 5, 6]])
b1 = np.array([[0, 0, 0]])
print(np.r_[a1, b1]) # >>>[[1 2 3]
[4 5 6]
[0 0 0]]
a1 = np.array([[1, 2], [3, 4], [5, 6]])
b1 = np.array([[0], [0], [0]])
print(np.c_[a1, b1]) # >>>[[1 2 0]
[3 4 0]
[5 6 0]]
我实际中遇到的代码是这样的
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
[x2,y2]
……]
这里的xx,yy使用np.meshgrid得到的坐标轴,所以上面那段代码实际上执行了对坐标轴上所以位置的[x, y]的预测。
参考:http://blog.csdn.net/guoziqing506/article/details/71078576
2. ravel()
array类型对象的方法,ravel函数将多维数组降为一维,仍返回array数组,元素以列排列。
与flatten一起学。两者所要实现的功能是一致的(将多维数组降位一维),两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflects)原始矩阵,而numpy.ravel()返回的是视图(view,也颇有几分C/C++引用reference的意味),会影响(reflects)原始矩阵。
>>> x = np.array([[1, 2], [3, 4]])
>>> x
array([[1, 2],
[3, 4]])
>>> x.flatten()
array([1, 2, 3, 4])
>>> x.ravel()
array([1, 2, 3, 4])
两者默认均是行序优先
>>> x.flatten('F')
array([1, 3, 2, 4])
>>> x.ravel('F')
array([1, 3, 2, 4])
>>> x.reshape(-1)
array([1, 2, 3, 4])
>>> x.T.reshape(-1)
array([1, 3, 2, 4])
参考:http://blog.csdn.net/lanchunhui/article/details/50354978
plt.contourf 与 plt.contour 区别:
4. scatter
matplotlib.pyplot.
scatter
(
x,
y,
s=None,
c=None,
marker=None,
cmap=None,
norm=None,
vmin=None,
vmax=None,
alpha=None,
linewidths=None,
verts=None,
edgecolors=None,
hold=None,
data=None,
**kwargs
)
Make a scatter plot of x
vs y
Marker size is scaled by s
and marker color is mapped to c
Parameters: | x, y : array_like, shape (n, )
s : scalar or array_like, shape (n, ), optional
c : color, sequence, or sequence of color, optional, default: ‘b’
marker :
cmap :
norm :
vmin, vmax : scalar, optional, default: None
alpha : scalar, optional, default: None
linewidths : scalar or array_like, optional, default: None
verts : sequence of (x, y), optional
edgecolors : color or sequence of color, optional, default: None
|
---|---|
Returns: | paths : |