import numpy as np
import random
l1 = random.sample(range(1, 10), 5) # 随机生成20个1-100中不重复的数字
print(l1)
# 一维向量变矩阵时不能直接用transpose或者.T的形式
L1 = np.mat(l1).T # 将生成的向量l1进行转置,并使其成为矩阵
print(L1)
结果为:
[3, 6, 7, 8, 5]
[[3]
[6]
[7]
[8]
[5]]
将高维矩阵进行转置
l2 = np.array([[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
print(l2)
L2 = np.transpose(l2)
print(L2)
结果为:
[[ 1 2 3 4 5]
[ 6 7 8 9 10]
[11 12 13 14 15]]
[[ 1 6 11]
[ 2 7 12]
[ 3 8 13]
[ 4 9 14]
[ 5 10 15]]
然后将两矩阵在行上进行合并
L3 = np.hstack((L1, L2)) # 在行上进行合并,列上合并用 np.vstack
print(L3)
结果为:
[[ 8 1 6 11]
[ 1 2 7 12]
[ 7 3 8 13]
[ 6 4 9 14]
[ 4 5 10 15]]
知识点补充:
1、矩阵的合并
np.hstack((a,b)) # hstack()在行上合并
np.vstack((a,b)) # vstack()在列上合并
2、超过一维时,下面两种方法在转置的时候等价
L2 = np.transpose(l2)
L2 = l2.T
3、shape与reshape方法参考下面链接:
https://blog.youkuaiyun.com/TIME_LEAF/article/details/80867280