对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 生成不重复的随机数的代码
May 15 Python
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
Python中函数的参数传递与可变长参数介绍
Jun 30 Python
Python 中的 else详解
Apr 23 Python
python 内置函数filter
Jun 01 Python
Python for循环中的陷阱详解
Jul 13 Python
Python定时任务sched模块用法示例
Jul 16 Python
对python制作自己的数据集实例讲解
Dec 12 Python
python实现感知器算法(批处理)
Jan 18 Python
Python+OpenCV实现将图像转换为二进制格式
Jan 09 Python
Python urlencode和unquote函数使用实例解析
Mar 31 Python
virtualenv隔离Python环境的问题解析
Jun 21 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用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
php阳历转农历优化版
2016/08/08 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
详解JS预解析原理
2020/06/16 Javascript
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
Python列表切片常用操作实例解析
2020/03/10 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
建筑工程实习自我鉴定
2013/09/19 职场文书
技校生自我鉴定范文
2013/09/26 职场文书
自我鉴定200字
2013/10/28 职场文书
火锅店营销方案
2014/02/26 职场文书
个人社会实践自我鉴定
2014/03/24 职场文书
环卫工人节活动总结
2014/08/29 职场文书
单位租车协议书
2015/01/29 职场文书
责任书格式
2015/01/29 职场文书
高中升旗仪式主持词
2015/07/03 职场文书
创业计划书之寿司
2019/07/19 职场文书
话题作文之诚信
2019/11/28 职场文书
在pycharm中无法import所安装的库解决方案
2021/05/31 Python