Python使用numpy模块实现矩阵和列表的连接操作方法

作者:Together_CZ 时间:2023-02-17 21:05:41 

Numpy模块被广泛用于科学和数值计算,自然有它的强大之处,之前对于特征处理中需要进行数据列表或者矩阵拼接的时候都是自己写的函数来完成的,今天发现一个好玩的函数,不仅好玩,关键性能强大,那就是Numpy模块自带的矩阵、列表连接函数,实践一下。


#!usr/bin/env python
#encoding:utf-8
from __future__ import division

'''
__Author__:沂水寒城
使用numpy模块实现矩阵的连接操作
'''

import numpy as np

def simple_test():
 '''
 简单的小实验
 '''
 sim_one,sim_two=[1,5,8,0,3,6],[11,5,8,0,3]
 one_list=[[1,2,3],[1,2,1],[3,4,5],[4,5,6]]
 two_list=[[5,6,7],[6,7,8],[6,7,9],[0,4,7],[4,6,0],[2,9,1],[5,8,7],[9,7,8],[3,7,9]]
 three_list=[[0,4,3,7],[4,6,1,0],[2,5,9,1]]
 three_list=np.array(three_list)
 four_list=[[2,9,1],[5,8,7],[9,7,8],[3,7,9]]
 print '对一维列表连接结果为:'
 pring np.concatenate([sim_one,sim_two],axis=0)
 print '对两个矩阵按行连接结果为:'
 print np.concatenate([one_list,two_list],axis=0)
 print '对两个矩阵按列连接结果为:'
 print np.concatenate([one_list,three_list.T],axis=1)
 print np.concatenate([one_list,four_list],axis=1)

if __name__ == '__main__':
 simple_test()

结果如下:


[Decode error - output not utf-8]
[Decode error - output not utf-8]
[ 1 5 8 0 3 6 11 5 8 0 3]
对两个矩阵按行连接结果为:
[[1 2 3]
[1 2 1]
[3 4 5]
[4 5 6]
[5 6 7]
[6 7 8]
[6 7 9]
[0 4 7]
[4 6 0]
[2 9 1]
[5 8 7]
[9 7 8]
[3 7 9]]
对两个矩阵按列连接结果为:
[[1 2 3 0 4 2]
[1 2 1 4 6 5]
[3 4 5 3 1 9]
[4 5 6 7 0 1]]
[[1 2 3 2 9 1]
[1 2 1 5 8 7]
[3 4 5 9 7 8]
[4 5 6 3 7 9]]
[Finished in 0.5s]

np.concatenate()函数中,第一个参数为待合并的矩阵、列表,第二个参数为0则表示是按照行连接数据,为1则表示是按照列连接数据。

从上面结果可以看到对于一维列表,axis参数可以省略,对于二维列表当axis为0时也可以省略

当axis为1时,需要注意被连接的数据矩阵行数列数需要相同才行,否则会报错:


AttributeError: 'list' object has no attribute 'T'

即,当axis为1时,本质上就是将矩阵以行为基准对应行的数据直接连接即可

当axis为1时,本质上就是将矩阵以列为基准将数据以此向下堆放在一起即可

来源:https://blog.csdn.net/Together_CZ/article/details/79595844

标签:Python,numpy,矩阵,列表
0
投稿

猜你喜欢

  • Git 教程之远程仓库详解

    2023-10-18 20:34:16
  • 基于Python的身份证验证识别和数据处理详解

    2021-04-22 04:43:09
  • Python利用Gradio与EasyOCR构建在线识别文本的Web应用

    2023-05-31 09:35:57
  • Python标准库os库的常用功能解析

    2021-03-06 12:32:51
  • 详解Django框架中用户的登录和退出的实现

    2022-08-28 19:37:19
  • vue proxytable代理根路径的同时增加其他代理方式

    2024-05-05 09:09:17
  • python使用jieba实现中文分词去停用词方法示例

    2021-02-04 11:27:17
  • Python面向对象中类(class)的简单理解与用法分析

    2021-01-05 00:07:37
  • 如何利用Python开发一个简单的猜数字游戏

    2022-05-21 20:38:08
  • MySQL通配符与正则表达式搜过滤数据详解

    2024-01-23 03:12:54
  • Python使用Selenium爬取淘宝异步加载的数据方法

    2021-05-17 05:31:57
  • Mysql查询很慢卡在sending data的原因及解决思路讲解

    2024-01-18 02:40:45
  • python使用正则表达式匹配txt特定字符串(有换行)

    2023-03-23 07:46:03
  • 详解MySQL中的SQRT函数的使用方法

    2024-01-28 03:59:32
  • python中split(), os.path.split()和os.path.splitext()的用法

    2022-03-23 09:06:40
  • 深入理解vue中的slot与slot-scope

    2024-05-05 09:07:18
  • Python中的流程控制详解

    2023-07-22 20:31:54
  • MySQL左联多表查询where条件写法示例

    2024-01-14 08:44:43
  • 在windows下Python打印彩色字体的方法

    2023-05-19 07:03:32
  • go-micro微服务domain层开发示例详解

    2024-04-26 17:25:04
  • asp之家 网络编程 m.aspxhome.com