对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正则表达式判断字符串是否是全部小写示例
Dec 25 Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
Aug 07 Python
python中模块查找的原理与方法详解
Aug 11 Python
python实现图片彩色转化为素描
Jan 15 Python
详解python的argpare和click模块小结
Mar 31 Python
如何通过Python实现标签云算法
Jul 02 Python
在spyder IPython console中,运行代码加入参数的实例
Apr 20 Python
Python3中FuzzyWuzzy库实例用法
Nov 18 Python
Django通过设置CORS解决跨域问题
Nov 26 Python
用Python自动清理系统垃圾的实现
Jan 18 Python
python数字类型和占位符详情
Mar 13 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邮件类
2007/01/03 PHP
抓取YAHOO股票报价的类
2009/05/15 PHP
php权重计算方法代码分享
2014/01/09 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
Javascript排序算法之计数排序的实例
2014/04/05 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
微信小程序实现点击图片放大预览
2019/10/21 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
10款最好的Web开发的 Python 框架
2015/03/18 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
Python3生成手写体数字方法
2018/01/30 Python
python绘制多个曲线的折线图
2020/03/23 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
Python中psutil的介绍与用法
2019/05/02 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
如何基于python测量代码运行时间
2019/12/25 Python
使用Python将图片转正方形的两种方法实例代码详解
2020/04/29 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
常务副总经理任命书
2014/06/05 职场文书
关于旅游的活动方案
2014/08/15 职场文书
捐书活动倡议书
2015/04/27 职场文书
党支部评议意见
2015/06/02 职场文书
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers