对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的curses库使用教程
Apr 11 Python
实例讲解Python设计模式编程之工厂方法模式的使用
Mar 02 Python
Python for Informatics 第11章之正则表达式(四)
Apr 21 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
python实现简单五子棋游戏
Jun 18 Python
Python考拉兹猜想输出序列代码实践
Jul 05 Python
python 同时读取多个文件的例子
Jul 16 Python
python 经典数字滤波实例
Dec 16 Python
python实现用类读取文件数据并计算矩形面积
Jan 18 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
Jun 02 Python
pytorch 如何使用batch训练lstm网络
May 28 Python
Python各协议下socket黏包问题原理
Apr 12 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下mysql数据库操作类(改自discuz)
2010/07/03 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
php类常量的使用详解
2013/06/08 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
可以文本显示的公告栏的js代码
2007/03/11 Javascript
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
jquery预加载图片的方法
2015/05/27 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
2018/02/23 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:44]Ti10举办地公布
2019/08/25 DOTA
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
python如何实现word批量转HTML
2020/09/30 Python
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
北京天润融通.net面试题笔试题
2012/02/20 面试题
品管员岗位职责
2013/11/10 职场文书
我为自己代言广告词
2014/03/18 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
实习单位意见
2015/06/04 职场文书