import numpy as np

A = np.array([1, 1, 1])
B = np.array([2, 2, 2]) print(np.vstack((A, B))) # vertical(垂直的) stack(堆)
"""
[[1,1,1]
[2,2,2]]
""" C = np.vstack((A,B))
print(A.shape,C.shape)
# 从打印出的结果来看,A仅仅是一个拥有3项元素的数组(数列),而合并后得到的C是一个2行3列的矩阵。
# (3,) (2,3)
# vertical stack本身属于一种上下合并
# 转置操作 '''
horizontal stack 表示水平线合并 也就是左右合并
'''
D = np.hstack((A,B)) # horizontal stack print(D)
# [1,1,1,2,2,2] print(A.shape,D.shape)
# (3,) (6,) '''
说完了array的合并,稍微提及一下转置的操作
当是一维的数组的时候 就无法实现转置 因为他不是一个矩阵
此时就要借助其他函数操作进行转置
''' print(A[np.newaxis,:]) #可以看到加一个newaxis表示的是加一个维度
# [[1 1 1]] print(A[np.newaxis,:].shape)
# (1,3) 表示一行三列的矩阵 print(A[:,np.newaxis]) #可以看到newaixs表示的就是加1
"""
[[1]
[1]
[1]]
""" print(A[:,np.newaxis].shape)
# (3,1) '''
结合上面所学的知识可以把它综合起来
'''
print('----分隔-----')
A = np.array([1, 1, 1])[:, np.newaxis]#变成一个三行1列的矩阵
B = np.array([2, 2, 2])[:, np.newaxis] C = np.vstack((A, B)) # vertical stack 垂直合并 6行1列
D = np.hstack((A, B)) # horizontal stack 水平合并 3行2列 print(D)
"""
[[1 2]
[1 2]
[1 2]]
""" print(A.shape, D.shape)
# (3,1) (3,2) '''
当你的合并操作需要针对多个矩阵或序列时,借助concatenate函数可能会让你使用起来比前述的函数更加方便:
涉及到多个矩阵和序列的操作
''' C = np.concatenate((A,B,B,A),axis=0) print(C)
"""
array([[1],
[1],
[1],
[2],
[2],
[2],
[2],
[2],
[2],
[1],
[1],
[1]])
""" D = np.concatenate((A,B,B,A),axis=1) print(D)
"""
array([[1, 2, 2, 1],
[1, 2, 2, 1],
[1, 2, 2, 1]])
"""

np.vstack((a,b))将数组上下合并

np.hstack((a,b))将数组左右合并

可以有选择性的对数组进行合并操作,输入的参数是一个元组

A[np.newaxis,:]表示增加一个新的维度,因为知道一位数组不是矩阵,无法进行转置

当有多个矩阵或者数列需要合并的时候选择concatenate,可选axis参数

Numpy的学习4-array的合并的更多相关文章

  1. NUMPY的学习之路(2)——索引,合并,分割,赋值

    一.索引 1.1numpy数组的转置 A=np.arange(3,15).reshape(3,4) print(A) print(A[2][0]) print(A[2,1]) print(A[2,:] ...

  2. 数据挖掘---Numpy的学习

    什么是Numpy NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵(任意维度的数据处理),比Python自身的嵌套列表(nested list structure ...

  3. Numpy基础学习与总结

    Numpy类型学习 1.数组的表示 import numpy as np In [2]: #numpy核心是高维数组,库中的ndarray支持多维数组,同时提供了数值运算,可对向量矩阵进行运算 In ...

  4. NumPy 数组学习手册·翻译完成

    原文:Learning NumPy Array 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 ...

  5. Gulp学习指南之CSS合并、压缩与MD5命名及路径替换(转载)

    本文转载自: Gulp学习指南之CSS合并.压缩与MD5命名及路径替换

  6. Numpy 基础学习

    numpy.array() 功能:创建一个数据 vector = numpy.array([1,2,3,4]) matrix = numpy.array([1,2,3,4],[11,12,13,14] ...

  7. Leetcode#88. Merge Sorted Array(合并两个有序数组)

    题目描述 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m ...

  8. 【Python 数据分析】module 'numpy' has no attribute 'array'

    安装好Numpy模块后,开始做了几个小测试都可以运行,但是当我创建numpy.py这个文件后 numpy.py import numpy y = numpy.array([[11,4,2],[2,6, ...

  9. LevelDB 学习笔记2:合并

    LevelDB 学习笔记2:合并 部分图片来自 RocksDB 文档 Minor Compaction 将内存数据库刷到硬盘的过程称为 minor compaction 产出的 L0 层的 sstab ...

随机推荐

  1. How to realize one's ambition

    Work Overtime Can it work? To some extent, it parhaps works very well. What if you do little job and ...

  2. jQuery 小demo 热点排名

    效果如下: 代码如下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta cha ...

  3. nginx学习sub_filter模块

    用户替换html中的字符 location / { root /opt/app/code/; random_index on; index index.html index.htm; sub_filt ...

  4. Linux禅道升级教程

    环境: centos7 禅道11.2升级道12.4 稳定版 下载: sudo wget https://www.zentao.net/dl/ZenTaoPMS.12.4.stable.zip 解压: ...

  5. 获取Win和Linux系统启动时间,类似uptime功能,用于判断是否修改过系统时间

    目录 前言 测试代码 Win测试 Linux测试 总结 前言 有时候需要判断系统是否有修改过时间,最简单的方法就是获取当前时间A,然后sleep X秒,然后获取 时间B,如果 时间B - 时间A ≠ ...

  6. centos xargs

    有些时候过滤后的东西需要传递给后面其它命令执行实现需求,这个时候xargs就派上用场了. 比如我想把过滤后的东东拷贝至其它目录,其实我可以进入那个目录然后执行ls,然后是过滤,接着再手工以拷贝那样也可 ...

  7. FPGA 串口

    VerilogHDL那些事儿_建模篇(黑金FPGA开发板配套教程) 作者:akuei2 说明:参照该书将部分程序验证学习一遍 学习时间:2014年5月3号 主要收获: 1. 对串口有初步了解: 2. ...

  8. macos brew zookeeper,安装后zookeeper启动失败?

    一.Zookeeper安装流程 执行如下安装命令: brew install zookeeper 执行截图如下: 安装后查看 zookeeper 安装信息(默认拉取最新版本) brew info zo ...

  9. 微信支付万亿日志在Hermes中的实践

    导语 | 微信支付日志系统利用 Hermes 来实现日志的全文检索功能,自从接入以来,日志量持续增长.目前单日入库日志量已经突破万亿级,单集群日入库规模也已经突破了万亿,存储规模达 PB 级.本文将介 ...

  10. NodeJS+formidable实现文件上传加自动重命名

    前述 本人node初学者,此前使用原生node实现文件上传时遇到了一些困难,只做到了.txt 和.png两中格式的文件可以正常上传,如果上传其他格式文件服务端保存的文件会无法正常打开,原因是对form ...