一维列表与矩阵之间的行或列方向上的合并

本文详细介绍使用Python的NumPy库进行矩阵生成、转置、合并等操作的方法。包括如何生成随机矩阵,进行转置,以及如何使用hstack和vstack函数在行或列方向上合并矩阵。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值