准确的说,numpy中的c_、r_、s_不能称为函数,它只是CClass类的一个实例,而CClass是定义了切片方法__getitem__的类,所以c_就可以使用切片,仿佛就像一个函数一样。
1、numpy.c_
将切片对象沿第二个轴(按列)连接。
使用方法
>>> a = np.arange(6)
>>> a
array([0, 1, 2, 3, 4, 5])
>>> b = np.arange(3, 9)
>>> b
array([3, 4, 5, 6, 7, 8])
>>> c = np.c_[a, b]
>>> c
array([[0, 3],
[1, 4],
[2, 5],
[3, 6],
[4, 7],
[5, 8]])
2、numpy.r_
将切片对象沿第一个轴(按行)连接。
使用方法
>>> a = np.arange(6)
>>> a
array([0, 1, 2, 3, 4, 5])
>>> b = np.arange(3, 9)
>>> b
array([3, 4, 5, 6, 7, 8])
>>> c = np.r_[a, b]
>>> c
array([0, 1, 2, 3, 4, 5, 3, 4, 5, 6, 7, 8])
3、numpy.s_
生成python内置的 slice 函数,并设置 start, stop 及 step 参数。
使用方法
>>> a = np.reshape(np.arange(12), (3, 4))
>>> a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
# 生成内置slice函数
>>> b = np.s_[1:2:1]
>>> b
slice(1, 2, 1)
# 使用slice函数进行切片
>>> c = a[b]
>>> c
array([[4, 5, 6, 7]])