对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中Django框架利用url来控制登录的方法
Jul 25 Python
简单讲解Python编程中namedtuple类的用法
Jun 21 Python
Python 数据结构之队列的实现
Jan 22 Python
利用python求解物理学中的双弹簧质能系统详解
Sep 29 Python
用matplotlib画等高线图详解
Dec 14 Python
Python 实现删除某路径下文件及文件夹的实例讲解
Apr 24 Python
在Pandas中处理NaN值的方法
Jun 25 Python
python networkx 包绘制复杂网络关系图的实现
Jul 10 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
详解Python中namedtuple的使用
Apr 27 Python
使用Python-OpenCV消除图像中孤立的小区域操作
Jul 05 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 采集程序中常用的函数
2009/12/09 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
javascript Math.random()随机数函数
2009/11/04 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
node.js中module.exports与exports用法上的区别
2016/09/02 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
Python实现的一个简单LRU cache
2014/09/26 Python
python网络编程之读取网站根目录实例
2014/09/30 Python
python实现自动更换ip的方法
2015/05/05 Python
python 异常处理总结
2016/10/18 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
2018/04/26 Python
Python函数装饰器实现方法详解
2018/12/22 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
Python包和模块的分发详细介绍
2020/06/19 Python
10个顶级Python实用库推荐
2021/03/04 Python
努比亚手机官网:nubia
2016/10/06 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
教师师德教育的自我评价
2013/10/31 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
python接口测试返回数据为字典取值方式
2022/02/12 Python
MySQL优化及索引解析
2022/03/17 MySQL