对numpy和pandas中数组的合并和拆分详解


Posted in Python onApril 11, 2018

合并

numpy中

numpy中可以通过concatenate,指定参数axis=0 或者 axis=1,在纵轴和横轴上合并两个数组。

import numpy as np
import pandas as pd
arr1=np.ones((3,5))
arr1
Out[5]: 
array([[ 1., 1., 1., 1., 1.],
    [ 1., 1., 1., 1., 1.],
    [ 1., 1., 1., 1., 1.]])
arr2=np.random.randn(15).reshape(arr1.shape)
arr2
Out[8]: 
array([[-0.09666833, 1.47064828, -1.94608976, 0.2651279 , -0.32894787],
    [ 1.01187699, 0.39171167, 1.49607091, 0.79216196, 0.33246644],
    [ 1.71266238, 0.86650837, 0.77830394, -0.90519422, 1.55410056]])
np.concatenate([arr1,arr2],axis=0) #在纵轴上合并
Out[9]: 
array([[ 1.    , 1.    , 1.    , 1.    , 1.    ],
    [ 1.    , 1.    , 1.    , 1.    , 1.    ],
    [ 1.    , 1.    , 1.    , 1.    , 1.    ],
    [-0.09666833, 1.47064828, -1.94608976, 0.2651279 , -0.32894787],
    [ 1.01187699, 0.39171167, 1.49607091, 0.79216196, 0.33246644],
    [ 1.71266238, 0.86650837, 0.77830394, -0.90519422, 1.55410056]])
np.concatenate([arr1,arr2],axis=1) #在横轴上合并
Out[10]: 
array([[ 1.    , 1.    , 1.    , ..., -1.94608976,
     0.2651279 , -0.32894787],
    [ 1.    , 1.    , 1.    , ..., 1.49607091,
     0.79216196, 0.33246644],
    [ 1.    , 1.    , 1.    , ..., 0.77830394,
    -0.90519422, 1.55410056]])
np.hstack([arr1,arr2]) # 水平 horizon 
np.vstack([arr1,arr2]) # 垂直 vertical

pandas中

pandas中通过concat方法实现合并,指定参数axis=0 或者 axis=1,在纵轴和横轴上合并两个数组。与numpy不同,这里的两个dataframe要放在一个列表中,即[frame1,frame2]

from pandas import DataFrame
frame1=DataFrame([[1,2,3],[4,5,6]])
frame2=DataFrame([[7,8,9],[10,11,12]])
pd.concat([frame1,frame2],ignore_index=True) # 合并的数组是一个可迭代的列表。
Out[25]: 
  0  1  2
0  1  2  3
1  4  5  6
0  7  8  9
1 10 11 12
pd.concat([frame1,frame2],axis=1,ignore_index=True)
Out[27]: 
  0 1 2  3  4  5
0 1 2 3  7  8  9
1 4 5 6 10 11 12

拆分

默认情况下,Numpy数组是按行优先顺序创建。在空间方面,这就意味着,对于一个二维数字,每行中的数据项是存放在内在中相邻的位置上的。另一种顺序是列优先。

由于历史原因,行优先和列优先又分别被称为C和Fortran顺序。在Numpy中,可以通过关键字参数order='C' 和order='F' 来实现行优先和列优先。

arr=np.arange(15).reshape(3,-1)
arr
Out[29]: 
array([[ 0, 1, 2, 3, 4],
    [ 5, 6, 7, 8, 9],
    [10, 11, 12, 13, 14]])
arr.ravel('F') #按照列优先,扁平化。
Out[30]: array([ 0, 5, 10, ..., 4, 9, 14])
arr.ravel()
Out[31]: array([ 0, 1, 2, ..., 12, 13, 14])
arr.reshape((5,3),order='F') # Fortran 顺序
Out[32]: 
array([[ 0, 11, 8],
    [ 5, 2, 13],
    [10, 7, 4],
    [ 1, 12, 9],
    [ 6, 3, 14]])
 arr.reshape((5,3),order='C')
 Out[33]: 
array([[ 0, 1, 2],
    [ 3, 4, 5],
    [ 6, 7, 8],
    [ 9, 10, 11],
    [12, 13, 14]])

以上这篇对numpy和pandas中数组的合并和拆分详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
Jan 19 Python
Python中map和列表推导效率比较实例分析
Jun 17 Python
Python中matplotlib中文乱码解决办法
May 12 Python
python测试mysql写入性能完整实例
Jan 18 Python
Python+OpenCV感兴趣区域ROI提取方法
Jan 10 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
python基于celery实现异步任务周期任务定时任务
Dec 30 Python
Python任务调度模块APScheduler使用
Apr 15 Python
python 轮询执行某函数的2种方式
May 03 Python
python接入支付宝的实例操作
Jul 20 Python
5款实用的python 工具推荐
Oct 13 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 #Python
深入浅析python with语句简介
Apr 11 #Python
python实现微信自动回复功能
Apr 11 #Python
Python实现检测文件MD5值的方法示例
Apr 11 #Python
python 输出上个月的月末日期实例
Apr 11 #Python
Python简单计算文件MD5值的方法示例
Apr 11 #Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 #Python
You might like
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
javascript获取select值的方法完整实例
2019/06/20 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
Python的另外几种语言实现
2015/01/29 Python
Python爬取读者并制作成PDF
2015/03/10 Python
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
关于TensorFlow新旧版本函数接口变化详解
2020/02/10 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
Python 在函数上添加包装器
2020/07/28 Python
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
如何提高MySql的安全性
2014/06/19 面试题
2014年最新版离婚协议书范本
2014/11/25 职场文书
2014年班务工作总结
2014/12/02 职场文书
幼儿园校车安全责任书
2015/05/08 职场文书
活动简报范文
2015/07/22 职场文书
高三毕业感言
2015/07/30 职场文书
《西门豹》教学反思
2016/02/23 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
Nginx服务器如何设置url链接
2021/03/31 Servers
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript