numpy.array 合并和分割
# 导包
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的数组
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的数组
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 合并和分割的更多相关文章
- Numpy array 合并
1.np.vstack() :垂直合并 >>> import numpy as np >>> A = np.array([1,1,1]) >>> ...
- NumPy学习(索引和切片,合并,分割,copy与deep copy)
NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...
- Python Numpy Array
Numpy 是Python中数据科学中的核心组件,它给我们提供了多维度高性能数组对象. Arrays Numpy.array dtype 变量 dtype变量,用来存放数据类型, 创建数组时可以同 ...
- python numpy array 的一些问题
1 将list转换成array 如果list的嵌套数组是不规整的,如 a = [[1,2], [3,4,5]] 则a = numpy.array(a)之后 a的type是ndarray,但是a中得元素 ...
- 【笔记】numpy.array基础(3)
numpy数组的合并与分割 合并操作 concatenate拼接,只能操作维数一样的数据 且并不局限于两个元素 对于二维数组来说,可以通过控制axis来控制是按照行还是按照列来进行拼接操作,默认为ax ...
- numpy.array
关于python中的二维数组,主要有list和numpy.array两种. 好吧,其实还有matrices,但它必须是2维的,而numpy arrays (ndarrays) 可以是多维的. 我们主要 ...
- gensim与numpy array 互转
目的 将gensim输出的格式转化为numpy array格式,支持作为scikit-learn,tensorflow的输入 实施 使用nltk库的停用词和网上收集的资料整合成一份新的停用词表,用来过 ...
- 找出numpy array数组的最值及其索引
在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where ...
- opencv3 学习五 - 合并与分割通道
合并与分割通道 程序如下 #include "opencv2/opencv.hpp" using namespace cv; int main() { Mat original = ...
随机推荐
- [Android Studio] 2019年Android Studio配置指北
Android Studio是我学习Android开发路上的第一块绊脚石,新建一个项目,一行代码没动,直接编译不起来,我太难了,所以本文叫指北 本文讲解在9102年如何在国内网络不通畅的情况下流畅的使 ...
- Spark 学习笔记之 Streaming Window
Streaming Window: 上图意思:每隔2秒统计前3秒的数据 slideDuration: 2 windowDuration: 3 例子: import org.apache.kafka.c ...
- 服务器配置https协议,三种免费的方法
最近想搞一个网站玩玩,发布网站用https协议已经是大势所趋了.例如微信小程序,不使用https协议根本不让接入.所以,分享一下我尝试过的三种方法. 1.Linux自签(OPENSSL生成SSL自签证 ...
- JS中的排序算法-冒泡排序解析
冒泡排序算法 例子:10,8,9,6,4,20,5 从小到大排序 第一轮 1)10>8 交换数据 得到:8,10,9,6,4,20,5 2)10>9 交换数据 得到:8,9,10, ...
- python编程基础之二十四
函数: def 函数名([参数1],[参数2],[参数3], ... ,[参数n]): 函数体代码 函数名命名规则:同标识符命名相同,但是多了一点,不要和系统函数重名,其实所有命名都是一样只要符合标识 ...
- [JLOI2014]天天酷跑
请允许我对记忆化搜索进行一个总结,我认为所有的搜索只要数据范围允许,都可以转化为记忆化搜索, 只是,用处的多与少的关系,其本身是求出设出状态之后,为求出当前状态进行递推(搜索),推到 已知状态,之后再 ...
- Win10实现多用户同时进行远程桌面连接的解决方案
Win10无法实现多用户远程桌面连接的解决方案以下方法解决Win10无法同时多用户登录.推荐:win10正式版下载 以下为必要步骤需先进行组策略设置,完成后再选择方法1或2(推荐方法2): 远程桌面连 ...
- bs4 UnicodeEncodeError: 'gbk' codec can't encode character '\xa0'
Problem: 写爬虫时,出现了以下错误: 意思是Unicode编码错误,gbk编解码器不能编码\xa0字符. 爬取信息包含中文,使用BeautifulSoup库解析网页,用get_text()方法 ...
- C#用抽象类定义几何图形
using System;/*using System.Data;*/namespace tx{ abstract class tx { public double chan ...
- Centos7升级Git版本
centos 升级 Git 版本 问题描述 centos7 系统默认的 git 安装版本是 1.8,但是在项目构建中发现 git 版本过低,于是用源码编译的方式进行升级.同时该文章也适用于安装新的 g ...