# 导包
import numpy as np

numpy.array 的合并

.concatenate()

  一维数组

x = np.array([1, 2, 3])   # array([1, 2, 3])
y = np.array([3, 2, 1]) # array([3, 2, 1])
np.concatenate([x, y])   # array([1, 2, 3, 3, 2, 1])
z = np.array([666, 666, 666]) # array([666, 666, 666])
np.concatenate([x, y, z])
"""
array([ 1, 2, 3, 3, 2, 1, 666, 666, 666])
"""

  二维数组

  .concatenate((a,b,c,...),axis=0) :默认情况下,axis=0可以不写,axis是拼接方向,拼接方向可以理解为拼接完成后数量发生变化的方向,0为横轴,1为纵轴

    axis=0:对应列的数组进行拼接,拼接方向为横轴,需要纵轴结构相同

    axis=1:对应行的数组进行拼接,拼接方向为纵轴,需要横轴结构相同

A = np.array([[1, 2, 3], [4, 5, 6]])
"""
array([[1, 2, 3],
[4, 5, 6]])
"""
np.concatenate([A, A])
"""
array([[1, 2, 3],
[4, 5, 6],
[1, 2, 3],
[4, 5, 6]])
"""
np.concatenate([A, A], axis=1)
"""
array([[1, 2, 3, 1, 2, 3],
[4, 5, 6, 4, 5, 6]])
"""
np.concatenate([A, z]) # 错误
np.concatenate([A, z.reshape(1, -1)])
"""
array([[ 1, 2, 3],
[ 4, 5, 6],
[666, 666, 666]])
"""

.hstack()

  函数原型:numpy.hstack(tup) ,参数tup可以是元组,列表,或者numpy数组,阵列必须具有相同的形状,除了对应于轴的维度(默认情况下,第一个),返回结果为numpy的数组

  等价于  numpy.concatenate(tup,axis=1)
a=[1,2,3]
b=[4,5,6]
np.hstack((a,b)) # array([1, 2, 3, 4, 5, 6])
a=[[1],[2],[3]]
b=[[1],[2],[3]]
c=[[1],[2],[3]]
d=[[1],[2],[3]]
np.hstack((a,b,c,d))
"""
array([[1, 1, 1, 1],
[2, 2, 2, 2],
[3, 3, 3, 3]])
"""

  它其实就是水平(按列顺序)把数组给堆叠起来

.vstack()

  函数原型:numpy.vstack(tup)  ,参数tup可以是元组,列表,或者numpy数组,返回结果为numpy的数组

  等价于:  np.concatenate(tup,axis=0) 
a=[1,2,3]
b=[4,5,6]
np.vstack((a,b))
"""
array([[1, 2, 3],
[4, 5, 6]])
"""
a=[[1],[2],[3]]
b=[[1],[2],[3]]
c=[[1],[2],[3]]
d=[[1],[2],[3]]
np.vstack((a,b,c,d))
"""
array([[1],
[2],
[3],
[1],
[2],
[3],
[1],
[2],
[3],
[1],
[2],
[3]])
"""

  它是垂直(按照行顺序)的把数组给堆叠起来

numpy.array 的分割

split

  split(ary, indices_or_sections, axis=0):把一个数组从左到右按顺序切分 

  ary:要切分的数组 
  indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左闭右开) 
  axis:沿着哪个维度进行切向,默认为0,横向切分;为1时,纵向切分

x = np.arange(10)  # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
x1, x2, x3, x4, x5 = np.split(x, [2, 4, 5, 7])
"""
x1 --> array([0, 1])
x2 --> array([2, 3])
x3 --> array([4])
x4 --> array([5, 6])
x5 --> array([7, 8, 9])
"""
A = np.arange(16).reshape(4, 4)
A1, A2 = np.split(A, [2])
"""
A1 --> array([[0, 1, 2, 3],
     [4, 5, 6, 7]])
A2 --> array([[ 8, 9, 10, 11],
      [12, 13, 14, 15]])
""" A1, A2 = np.split(A, [2], axis=1)
"""
A1 --> array([[ 0, 1],
     [ 4, 5],
      [ 8, 9],
     [12, 13]])
A2 --> array([[ 2, 3],
[ 6, 7],
[10, 11],
[14, 15]])
"""

hsplit

  通过指定要返回的相同shape的array的数量,类似于axis = 1

vsplit

  vsplit沿着垂直轴分割,类似于axis = 0

upper, lower = np.vsplit(A, [2])
"""
upper --> array([[0, 1, 2, 3],
       [4, 5, 6, 7]])
""" left, right = np.hsplit(A, [2])
"""
left --> array([[ 0, 1],
[ 4, 5],
[ 8, 9],
[12, 13]])
"""

numpy.array 合并和分割的更多相关文章

  1. Numpy array 合并

    1.np.vstack() :垂直合并 >>> import numpy as np >>> A = np.array([1,1,1]) >>> ...

  2. NumPy学习(索引和切片,合并,分割,copy与deep copy)

    NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...

  3. Python Numpy Array

    Numpy 是Python中数据科学中的核心组件,它给我们提供了多维度高性能数组对象. Arrays Numpy.array   dtype 变量 dtype变量,用来存放数据类型, 创建数组时可以同 ...

  4. python numpy array 的一些问题

    1 将list转换成array 如果list的嵌套数组是不规整的,如 a = [[1,2], [3,4,5]] 则a = numpy.array(a)之后 a的type是ndarray,但是a中得元素 ...

  5. 【笔记】numpy.array基础(3)

    numpy数组的合并与分割 合并操作 concatenate拼接,只能操作维数一样的数据 且并不局限于两个元素 对于二维数组来说,可以通过控制axis来控制是按照行还是按照列来进行拼接操作,默认为ax ...

  6. numpy.array

    关于python中的二维数组,主要有list和numpy.array两种. 好吧,其实还有matrices,但它必须是2维的,而numpy arrays (ndarrays) 可以是多维的. 我们主要 ...

  7. gensim与numpy array 互转

    目的 将gensim输出的格式转化为numpy array格式,支持作为scikit-learn,tensorflow的输入 实施 使用nltk库的停用词和网上收集的资料整合成一份新的停用词表,用来过 ...

  8. 找出numpy array数组的最值及其索引

    在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where ...

  9. opencv3 学习五 - 合并与分割通道

    合并与分割通道 程序如下 #include "opencv2/opencv.hpp" using namespace cv; int main() { Mat original = ...

随机推荐

  1. spring5 源码深度解析----- @Transactional注解的声明式事物介绍(100%理解事务)

    面的几个章节已经分析了spring基于@AspectJ的源码,那么接下来我们分析一下Aop的另一个重要功能,事物管理. 事务的介绍 1.数据库事物特性 原子性多个数据库操作是不可分割的,只有所有的操作 ...

  2. asp.net core刷新css缓存

    在非spa程序开发的时候.css经常会因为浏览器的缓存机制导致不刷新. 很多前端为了应对这个问题,都会引入webpack或者gulp等工具来处理css缓存的问题. 但是作为一个偏服务器端的程序员来说. ...

  3. 安装Office Visio 提示Office 16 Click-to-Run Extensibility Component

    今天在安装 Office Visio 2016 时,点击安装程序,出现以下错误:   出现这个问题的原因就是你的电脑以前安装过32位的office,卸载时,注册表没有清理干净. 解决方案: 在win1 ...

  4. Web性能优化:雅虎35条

    对web性能优化,一直知道是个很重要的方面,平时有注意到,但是对于雅虎35条是第一次听说,查了一下,发现平时都有用过,只是没有总结到一块,今天就总结一下吧. 雅虎35条: 1.[内容]尽量减少HTTP ...

  5. java并发之CAS详解

    前言 在高并发的应用当中,最关键的问题就是对共享变量的安全访问,通常我们都是通过加锁的方式,比如说synchronized.Lock来保证原子性,或者在某些应用当中,用voliate来保证变量的可见性 ...

  6. HashMap的结构以及核心源码分析

    摘要 对于Java开发人员来说,能够熟练地掌握java的集合类是必须的,本节想要跟大家共同学习一下JDK1.8中HashMap的底层实现与源码分析.HashMap是开发中使用频率最高的用于映射(键值对 ...

  7. lua行为树设计与实现

    项目需要,之前行为树用的是behaviorDesigner,要改成纯lua的 我先做了一版用递归实现,代码可读性高但是中断机制实现起来比较复杂,而且创建自定义action重写方法时需要调用父类的方法, ...

  8. AWD攻防工具脚本汇总(二)

    情景五:批量修改ssh密码 拿到官方靶机第一件事改自己机器的ssh密码,当然也可以改别人的密码~ import paramiko import sys ssh_clients = [] timeout ...

  9. PHP array_replace_recursive

    1.函数的作用:比较键值,递归的替代数组中的元素 2.函数的参数: @params array $array1 @params array $array2 @params array $array3 ...

  10. shell基本运算符(五)

    shell支持多种运算符,包括:算术运算符.关系运算符.布尔运算符.字符串运算符.文件测试运算符. 注意:条件表达式要放在方括号之间,并且要有空格,eg:[$a==$b] 是错误的,必须写成 [ $a ...