np.c_和np.r_用法以及小技巧

np.c_[]通常用来按照行的方式连接两个矩阵,即左右连接,行数不变,列数增加,但是有些地方需要稍微注意一下,废话少说,上代码:

'''
np.c_[] 方法,是按照行连接两个矩阵,即左右连接,行数不变,但是也有需要注意的地方
并且可以利用一些小技巧
'''

# 两个两行三列矩阵连接,变成两行六列
a = np.array([[1, 2, 3],
              [7, 8, 9]])
b = np.array([[4, 5, 6],
              [10, 11, 12]])
c = np.c_[a, b]
print(c)

print("\n************************************************\n")

# 两个一行三列矩阵连接,变成一行6列
a = np.array([[1, 2, 3]])
b = np.array([[4, 5, 6]])
c = np.c_[a, b]
print(c)

print("\n************************************************\n")

# 注意!!!当如下所示的时候,相当于两个三行一列矩阵相连接(有点怪异,但是还是要理解注意)
# 可以用np.c_[d]检测,当只有一个矩阵的时候输出的一定就是原来的样子
d = np.array([7, 8, 9]) 
print(d)
print(np.c_[d])
e = np.array([10, 11, 12])
print(e)
print(np.c_[e])
f = np.c_[d,e]
print(f)

print("\n************************************************\n")

# 小技巧:
# 利用上述运行结果,当你想把一个列表(或者其他类型如Series)中所有的元素
# 变成多行(多用于进行模型的数据训练时分开每项数据)的时候可以直接这样做
x = np.array([1,2,3,4,5,6,7,8,9])
print(np.c_[x])

np.c_和np.r_用法以及小技巧_第1张图片至于np.r_[]则是和np.c_[]正好相反,即
np.r_[]通常用来按照列的方式连接两个矩阵,即上下连接,列数不变,行数增加,需要注意的地方同样和np.c_[]相同。
可以自己尝试一下,代码不足还请帮忙指正:[email protected]

你可能感兴趣的:(机器学习)