对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文件和目录操作函数小结
Jul 11 Python
python检测是文件还是目录的方法
Jul 03 Python
在Python的while循环中使用else以及循环嵌套的用法
Oct 14 Python
Python按行读取文件的实现方法【小文件和大文件读取】
Sep 19 Python
Python实现SQL注入检测插件实例代码
Feb 02 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
在OpenCV里实现条码区域识别的方法示例
Dec 04 Python
pytorch 求网络模型参数实例
Dec 30 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
Python是什么 Python的用处
May 26 Python
python 下划线的不同用法
Oct 24 Python
Python 实现PS滤镜的旋涡特效
Dec 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
基于mysql的bbs设计(四)
2006/10/09 PHP
加速XP搜索功能堪比vista
2007/03/22 PHP
深入php常用函数的使用汇总
2013/06/08 PHP
PHP根据IP判断地区名信息的示例代码
2014/03/03 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
php通过ksort()函数给关联数组按照键排序的方法
2015/03/18 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
JS打印gridview实现原理及代码
2013/02/05 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
2016/10/18 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
跟老齐学Python之list和str比较
2014/09/20 Python
跟老齐学Python之正规地说一句话
2014/09/28 Python
Python内置函数dir详解
2015/04/14 Python
Python猴子补丁知识点总结
2020/01/05 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
使用Python构造hive insert语句说明
2020/06/06 Python
Python+Kepler.gl实现时间轮播地图过程解析
2020/07/20 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
网站域名和主机:Domain.com
2019/04/01 全球购物
网络编辑岗位职责
2014/03/18 职场文书
公司委托书格式
2014/08/01 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
小学教师师德师风承诺书
2015/04/28 职场文书
创业计划书之家教托管
2019/09/25 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL