对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 相关文章推荐
详解Python的Twisted框架中reactor事件管理器的用法
May 25 Python
Python进阶之尾递归的用法实例
Jan 31 Python
python xpath获取页面注释的方法
Jan 14 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
python利用Opencv实现人脸识别功能
Apr 25 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 Python
python实现控制台输出彩色字体
Apr 05 Python
Python发送邮件封装实现过程详解
May 09 Python
Python urllib.request对象案例解析
May 11 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
python time.strptime格式化实例详解
Feb 03 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输出Excel文件类
2010/02/08 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
一个cssQuery对象 javascript脚本实现代码
2009/07/21 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
使用js实现数据格式化
2014/12/03 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
ES6如何用一句代码实现函数的柯里化
2020/01/18 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
python win32 简单操作方法
2017/05/25 Python
详解Python如何生成词云的方法
2018/06/01 Python
浅谈python之新式类
2018/08/12 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
在python中修改.properties文件的操作
2020/04/08 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
土建专业大学生自荐信范文
2014/04/09 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
个人授权委托书范文
2014/09/21 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
运动会加油稿30字
2015/07/21 职场文书
通知怎么写?
2019/04/17 职场文书
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android
什么是Python装饰器?如何定义和使用?
2022/04/11 Python